MVC コントローラーのドロップダウン リストの SelectedValue を取得します
MVC アプリケーションでは、データベースからドロップダウン リストに値を割り当てるのは非常に一般的なシナリオです。ただし、フォームを送信するときは、コントローラーで選択した値にアクセスする必要があります。この記事では、これを実現するための 2 つの方法を説明します。
方法 1: Request または FormCollection を使用する
最初のメソッドは、選択された値をリクエストから直接読み取ります。 Request.Form を使用すると、ドロップダウンのキー (この場合は ddlVendor) を指定して、投稿された値を取得できます:
<code class="language-csharp">string strDDLValue = Request.Form["ddlVendor"].ToString();</code>
または、FormCollection を使用することもできます:
<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV, FormCollection form) { string strDDLValue = form["ddlVendor"].ToString(); return View(MV); }</code>
方法 2: モデルを使用する
モデル バインディング メソッドの場合、モデルにプロパティを追加します。
<code class="language-csharp">public class MobileViewModel { public List<tbinsertmobile> MobileList; public SelectList Vendor { get; set; } public string SelectedVendor {get;set;} }</code>
ビューで、@Html.DropDownListFor を使用してドロップダウン リストをモデルにバインドし、SelectedVendor プロパティを指定します。
<code class="language-csharp">@Html.DropDownListFor(m=>m.SelectedVendor , Model.Vendor, "Select Manufacurer")</code>
最後に、コントローラーで、SelectedVendor プロパティを介して選択された値にアクセスできます。
<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV) { string SelectedValue = MV.SelectedVendor; return View(MV); }</code>
更新: 選択したテキストを投稿
選択した値とそれに対応するテキストの両方をキャプチャするには、ビューに非表示フィールドを追加します。
<code class="language-csharp">public class MobileViewModel { public List<tbinsertmobile> MobileList; public SelectList Vendor { get; set; } public string SelectVendor {get;set;} public string SelectedvendorText { get; set; } }</code>
ビューで、JavaScript を使用して、非表示フィールド内の選択されたアイテムのテキストを更新します:
<code class="language-javascript">$(function(){ $("#SelectedVendor").on("change", function() { $("#SelectedvendorText").val($(this).text()); }); }); @Html.DropDownListFor(m=>m.SelectedVendor , Model.Vendor, "Select Manufacurer") @Html.HiddenFor(m=>m.SelectedvendorText)</code>
以上がMVCコントローラーのドロップダウンリストから選択された値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。