2008-12-12 35 views
21
<% using (Html.BeginForm() { %> 

    <%=Html.DropDownList("TopItemsList", ViewData["ListData"], new { onchange="[???]" })%> 

<% } %> 

En el ejemplo anterior, ¿qué valor debe establecer en el cambio? O bien, ¿cómo se obtiene la forma correcta?¿Cómo se envía una lista desplegable en asp.net mvc

¿Hay alguna diferencia con Ajax.BeginFrom?

Respuesta

50

probar esto:

<%=Html.DropDownList("TopItemsList", ViewData["ListData"], new { onchange="this.form.submit();" })%> 

Cada elemento de la forma en la propiedad tiene una "forma" al que apunta el formulario que contiene este elemento.

Sí, usando "Html." y "Ajax". tiene una diferencia Ajax. significa que se utilizará la actualización parcial de la página y no se volverá a cargar toda la página.

+2

Sólo para corregir la declaración, <% = Html.DropDownList ("TopItemsList", ViewData [ "ListData"], nueva {@ onchange =" this.form.submit(); "})%> tenga en cuenta el símbolo @. –

+1

Si tiene varias listas desplegables o cuadros de texto que necesita hacer esto también, creé una clase de CSS y agregué este JS. $ (". AjaxForcePost"). Change (function() { this.form.submit(); }); – bulltorious

6

¿Por qué estás mezclando tu html con javascript ??

Eliminar el atributo onchange y añadir un poco de jQuery:

$("#TopItemsList").change(function() { 

    $("input[type=submit]").click(); 

}); 
+1

Causará problemas si tiene más de una entrada de envío. – ThiefMaster

Cuestiones relacionadas