Asp.netMVCフレームワークを使用しています。私のページにはdropdwonboxがあり、オプションをクリックすると別のページに移動したいと思います。しかし、autopostbackプロパティをtrueに設定する方法/場所が見つかりません。これは私が使用しているコードです:
Aspx:
<%= Html.DropDownList("qchap", new SelectList( (IEnumerable)ViewData["qchap"], "Id", "Title" )) %>
コントローラ:
public ActionResult Index(int id)
{
Chapter c = new Chapter();
ViewData["qchap"] = c.GetAllChaptersByManual(id);
return View();
}
自動ポストバック機能を使用するにはどうすればよいですか?
Onchangeクライアントイベントを使用できます。
<%= Html.DropDownList("qchap",
new SelectList( (IEnumerable)ViewData["qchap"], "Id", "Title" ),
new { onchange = "this.form.submit();" }) %>
私もあなたがformsCollectionへのポストバックを調整したいかもしれないと信じています
ポストバックパブリックActionResultIndex(FormsCollection myform)
(MVCがインストールされている自宅のPCを使用していないため、ここで構文を確認できません)
このコードを使用して解決します。
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
これはActionResult関数用です
そして、ビューのために
<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>
お役に立てば幸いです。より完全なコードが必要な場合は、 [email protected] までメールでお問い合わせください。
DropDownListヘルパーメソッドはこれをサポートしていないようです。たぶん、フォームとカスタムカスタムhtml属性内でそれを使用してフォームを送信します。