无法从下拉列表中向数据库添加值

时间:2014-12-18 09:26:33

标签: c# asp.net-mvc-4 model-view-controller

我有一个使用razor视图语法的级联下拉列表。 两者都是从数据库填充的,第二个下拉列表是用ajax方法填充的。

1.  @Html.DropDownList("LevelMaster", (IEnumerable<SelectListItem>)ViewData["LevelMaster"], "Select Master")

2.  <select id="BranchID" name="Branch"></select>

当我尝试使用这两个下拉列表选择值将值插入数据库时​​。 得到错误:

There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'LevelMaster'.

 <span>
  @Html.DropDownList("LevelMaster", (IEnumerable<SelectListItem>)ViewData["LevelMaster"], "Select Master")
 </span>

需要一些帮助。

2 个答案:

答案 0 :(得分:1)

我认为问题是因为您有ViewData["LevelMaster"],同时LevelMaster是您的dropDownList的名称。尝试更改ViewData之类的内容,例如ViewData["LevelMasterViewData"]

答案 1 :(得分:1)

对于DropDownList,您需要提供必须显示的项目以及复杂类型显示的项目。

 @Html.DropDownList("LevelMaster", new SelectList(ViewData["LevelMaster"], "Level", "Price"), "--Default--")

更好的选择是使用DropDownListFor,并指定模型属性来收集值。

@Html.DropDownListFor(m=>m.LevelMaster, new SelectList(ViewData["LevelMaster"], "Level", "Price"), "--Default--")

LevelMaster的类型为string