我有一个使用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>
需要一些帮助。
答案 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
。