在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中文网其他相关文章!