如何从MVC中的viewBag获取下拉文本值和文本名称

时间:2017-05-22 13:28:16

标签: asp.net-mvc-4

朋友们,您好朋友在mvc这个非常基本的问题,但是我找不到很多搜索。

控制:

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;

                }
   }

查看:

@Html.DropDownListFor(m => m.ReasonCode, new SelectList(ViewBag.ReasonCode, "Value", "Text"), new { @class = "form-control autofocus", @id = "ddlReason"})

我只得到m => m.ReasonCode但是如何从ViewBag.ReasonCode文本值中获取m.reason。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

您的ViewBag成员的名称不能与您的模型属性相同。 "选择"值由ModelState确定,RequestViewDataViewBag / Model和最后SelectListItem的值组成。因此,您实际上是在说#34;选择" value应该是ViewBag的整个列表,显然与该列表中的项不匹配。将您的ViewBag.ReasonCodeOptions成员更改为STRING,并且您会感觉良好。