asp - dropdownlist mvc c#
Redirigir desde el menĂº desplegable de ASP.NET (5)
Establezca el autopostback en falso y agréguelo al evento onchange del lado del cliente (suponiendo que el valor tiene toda la URL, si no, edítela según corresponda):
window.navigate(this.options[this.selectedIndex].value);
¿Cuál es el mejor método para manejar una situación en la que tiene una lista desplegable ASP.Net que se utiliza para vincular a otra URL?
editado para mayor claridad
Aquí está el escenario básico:
Lista desplegable con 5 ciudades ligadas a ella
Seleccionar una de las ciudades debería enviarme a una URL basada en la ciudad
En este momento estoy posteando usando el evento "OnSelectedIndexChanged" luego manejando el evento y redireccionando a la página apropiada.
Sin embargo, esto está causando 2 visitas al servidor por ciudad seleccionada, 1 para manejar la devolución de datos y redirigir, y luego otra para representar la página real.
¿Usar javascript personalizado para construir una URL es mi mejor opción?
Me pregunto, ¿por qué no buscar la información de la ciudad a través de AJAX (hay varios videos tutoriales en www.asp.net/learn ) y mostrarle al usuario la información de la ciudad en lugar de crear otro salto de página más?
es solo una idea, una idea de la Web 2.0 :)
Normalmente, estoy de acuerdo, pero es necesario contar con una URL concreta para cada página y regenerar otras partes de la página al llegar a la URL también.
¡Gracias por las sugerencias!
Si la página es pesada y le preocupan los tiempos de renderizado, puede usar ajax para representar los resultados de la consulta. El golpe del servidor para procesar los datos de la publicación y la redirección deben ser mínimos y no vale la pena hacerlo desde el lado del cliente. Personalmente, me concentraría más en mostrar los datos que el usuario quiere la primera vez.
Puede agregar un controlador del lado del cliente para el evento de selección cambiado y luego redirigirlo a la página deseada según el valor seleccionado:
<asp:DropDownList ID="ddl" runat="server"
onchange="document.location.href = this.value;" >
<asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
<asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
<asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
<asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>