web-dev-qa-db-ja.com

C#asp.net mvcを使用するときにautopostbackプロパティを設定するにはどうすればよいですか?

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();
}

自動ポストバック機能を使用するにはどうすればよいですか?

20
Martijn

Onchangeクライアントイベントを使用できます。

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

私もあなたがformsCollectionへのポストバックを調整したいかもしれないと信じています

ポストバックパブリックActionResultIndex(FormsCollection myform)

(MVCがインストールされている自宅のPCを使用していないため、ここで構文を確認できません)

0
James Fleming

このコードを使用して解決します。

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] までメールでお問い合わせください。

0
Ali Irawan

DropDownListヘルパーメソッドはこれをサポートしていないようです。たぶん、フォームとカスタムカスタムhtml属性内でそれを使用してフォームを送信します。

0
Sebastian