2009-04-08 18 views
20

Estoy usando asp.net MVC framework. En mi página tengo un dropdwonbox y cuando se hace clic en una opción quiero ir a otra página. Pero no puedo encontrar cómo/dónde establecer la propiedad de autopostback en verdadero. Este es el código que estoy usando:C# Cómo configurar la propiedad autopostback cuando se usa asp.net mvc?

Aspx:

<%= Html.DropDownList("qchap", new SelectList((IEnumerable)ViewData["qchap"], "Id", "Title")) %> 

controlador:

public ActionResult Index(int id) 
{ 
    Chapter c = new Chapter(); 
    ViewData["qchap"] = c.GetAllChaptersByManual(id); 

    return View(); 
} 

¿Qué tengo que hacer para utilizar la funcionalidad AutoPostBack?

Respuesta

36

Usted puede utilizar el evento onchange cliente:

<%= Html.DropDownList("qchap", 
     new SelectList((IEnumerable)ViewData["qchap"], "Id", "Title"), 
     new { onchange = "this.form.submit();" }) %> 
+0

thnx. ¿Y tengo que usar esta misma manera si quiero agregar el atributo de clase? – Martijn

+2

sí, aunque con C# tendrá que marcar con un guion bajo ... es decir, {_class = "algo"} – meandmycode

+0

¿Cómo sabrá el controlador qué acción debe ejecutarse? –

0

Parece que el método de ayuda DropDownList no soporta esto. Tal vez utilizándolo dentro de un formulario y un atributo html personalizado personalizado para enviar el formulario, hágalo.

0

creo también que es posible que desee para ajustar su devolución a la FormsCollection

devolución de datos pública ActionResult Índice (myform FormsCollection)

(no estoy en mi ordenador de casa donde está instalado MVC, por lo que no se puede verificar la sintaxis aquí)

0

Lo resuelvo utilizando este código.

Function Index(ByVal collectionField As FormCollection) As ActionResult 

     Dim industryCategoryID As Long = collectionField.Item("ddlIndustry") 
     If industryCategoryID = 0 Then 
      Me.ViewData("IndustryList") = GlobalController.GetIndustryList 
      Return View(_service.ListCompanies()) 
     Else 
      Me.ViewData("IndustryList") = GlobalController.GetIndustryList 
      Return View(_service.ListCompanies(industryCategoryID)) 
     End If 

End Function 

Eso es para la función ActionResult

y luego para el Vista

<p> 
    <% Using Html.BeginForm()%> 
     <%=Html.DropDownList("ddlIndustry", New SelectList(CType(ViewData("IndustryList"), IEnumerable), "ID", "Name"), "--Choose industry--", New With {.onchange = "this.form.submit()"})%> 
    <% End Using %> 

    </p> 

espero que ayude. Si desea obtener códigos más completos, no dude en enviarme un correo electrónico al [email protected]

Cuestiones relacionadas