2009-04-08 13 views
20

Używam ramy asp.net MVC. Na mojej stronie mam dropdwonbox i po kliknięciu opcji chcę przejść do innej strony. Ale nie mogę znaleźć, jak/gdzie ustawić właściwość autopostback na true. Jest to kod używam:C# Jak ustawić właściwość autopostback podczas korzystania z asp.net mvc?

Aspx:

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

Kontroler:

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

    return View(); 
} 

Co muszę zrobić, aby korzystać z funkcji autopostback?

Odpowiedz

36

Można używać onchange klient:

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

thnx. Czy muszę używać tego samego sposobu, jeśli chcę dodać atrybut klasy? – Martijn

+2

tak, chociaż z C# trzeba poprzedzić znakiem podkreślenia, np. Nowy {_class = "coś"} – meandmycode

+0

W jaki sposób kontroler będzie wiedział, które działanie należy wykonać? –

0

Wydaje się, że metoda pomocnika DropDownList nie obsługuje tej funkcji. Być może używając go w formularzu i niestandardowy niestandardowy atrybut html do przesłania formularza, zrób to.

0

Wierzę też, że może chcesz dostosować odświeżenie do formsCollection

ogłaszania publicznego ActionResult Index (FormsCollection myForm)

(nie jestem na moim komputerze w domu w którym jest zainstalowany MVC, więc nie mogę zweryfikować składni tutaj)

0

Rozwiązuję ten kod.

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 

To dla funkcji ActionResult

a następnie przez Widoku

<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> 

Mam nadzieję, że to pomaga. Chciałbym więcej kompletnych kodów, prosimy o e-mail do mnie na [email protected]

Powiązane problemy