在MVC控制器中取得下拉清單的SelectedValue
在MVC應用程式中,從資料庫為下拉式清單賦值是很常見的場景。但是,提交表單時,就需要在控制器中存取選定的值。本文提供兩種方法來實現這一點:
方法一:使用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>
方法二:使用模型
對於模型綁定方法,請為您的模型新增一個屬性:
<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 控制器中的 DropDownList 取得所選值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!