C # Comment définir la propriété autopostback lors de l’utilisation de asp.net mvc?

J’utilise le framework asp.net MVC. Sur ma page, j’ai un dropdwonbox et quand une option est cliquée, je veux aller à une autre page. Mais je ne trouve pas comment / où définir la propriété autopostback sur true. C’est le code que j’utilise:

Aspx:

 

Manette:

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

Que dois-je faire pour utiliser la fonctionnalité autopostback?

Vous pouvez utiliser l’événement client onchange:

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

Il semble que la méthode d’assistance DropDownList ne supporte pas cela. Peut-être l’utiliser dans un formulaire et un atsortingbut HTML personnalisé pour soumettre le formulaire le faire.

Je crois aussi que vous voudrez peut-être ajuster votre publication sur les formulairesCollection

postback public Index ActionResult (FormsCollection myform)

(Je ne suis pas sur mon ordinateur personnel sur lequel MVC est installé, je ne peux donc pas vérifier la syntaxe ici)

Je résous en utilisant ce code.

 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 

C’est pour la fonction ActionResult

Et ensuite pour la vue

  

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

J’espère que ça aide. Si vous souhaitez des codes plus complets, n’hésitez pas à m’envoyer un email à boylevantz@gmail.com.