Asp.net mvc 4 如何在MVC中从viewBag中获取下拉文本值和文本名称

Asp.net mvc 4 如何在MVC中从viewBag中获取下拉文本值和文本名称,asp.net-mvc-4,Asp.net Mvc 4,朋友们好,这是mvc中的一个非常基本的问题,但是我搜索了很多次都找不到 控制: 视图: @Html.DropDownListForm=>m.ReasonCode,新建SelectListViewBag.ReasonCode,值,文本,新建{@class=form-control-autofocus,@id=ddlReason} 我只得到了m=>m.ReasonCode,但如何从ViewBag.ReasonCode文本值中获得m.ReasonCode 任何帮助都将不胜感激 ViewBag成员的名称

朋友们好,这是mvc中的一个非常基本的问题,但是我搜索了很多次都找不到

控制:

视图:

@Html.DropDownListForm=>m.ReasonCode,新建SelectListViewBag.ReasonCode,值,文本,新建{@class=form-control-autofocus,@id=ddlReason}

我只得到了m=>m.ReasonCode,但如何从ViewBag.ReasonCode文本值中获得m.ReasonCode


任何帮助都将不胜感激

ViewBag成员的名称不能与模型属性的名称相同。所选值由ModelState确定,ModelState由Request、ViewData/ViewBag和finally Model中的值组成。因此,您实际上是在说,selected值应该是SelectListItems的整个列表,这显然与该列表中的项目不匹配。将您的ViewBag成员更改为类似ViewBag.ReasonCodeOptions的内容,您会很好。

可能会将的副本作为旁注,使用新的SelectList创建与原始成员相同的IEnumerable。。在视图中是没有意义的额外开销。添加选项标签的正常方法是使用添加空值的validationok am更改我的viewbag名称,但如何捕获下拉文本名称值@Html.HiddenForm=>m.ReasonCode@Html.HiddenForm=>m.ReasonText的值
if (objResponse.ErrorNo == 0)
 {
     lstReason.Add(new SelectListItem { Value = "1", Text = "Select" });
     foreach (XElement xEle in resXml.Descendants("R"))
             {
               lstReason.Add(new SelectListItem { Value = xEle.Element("C1").Value, Text = xEle.Element("C2").Value });
              }
               ViewBag.ReasonCode = lstReason;

                }
   }