我是mvc4的新手(asp.net(vb.net),razor引擎)..
这让我烦恼。它完全适用于负载,如果我填写表格并提交它。
它显示以下错误。
没有'iEnumerable'类型的viewdata 关键的CustomerGroupId
在Controller(获取)中
Function Create() As ActionResult
_Engine = CType(HttpContext.Application("Engine"), Engine)
ViewBag.CustomerSubGroup = New SelectList(_Engine.RteCustomerSubGroupFactory.CodeFactory.Values)
ViewBag.RateList = New SelectList(_Engine.RteRateListFactory.Values)
Return View()
End Function
在视图中(.vbhtml)
<table>
<tr><td>Code </td><td>@Html.TextBox("Code")</td></tr>
<tr><td>Name</td><td>@Html.TextBox("Name")</td></tr>
<tr><td>Customer Sub Group Name </td><td>@Html.DropDownList("CustomerSubGroupId")</td></tr>
<tr><td>Rate List</td><td>@Html.DropDownList("RateList")</td></tr>
<tr><td>IsDisabled</td><td>@Html.CheckBox("IsDisabled")</td></tr>
显示
行中的错误<tr><td>Customer Sub Group Name </td><td>@Html.DropDownList("CustomerSubGroupId")</td></tr>
答案 0 :(得分:0)
在你的控制动作中,你必须添加一个具有你在视图上使用的相同ID的密钥,以便在DropDownList
上申请样本:
ViewBag.CustomerSubGroupId = New SelectList(_Engine.RteCustomerSubGroupFactory.CodeFactory.Values)
ViewBag.RateList = New SelectList(_Engine.RteRateListFactory.Values)
Return View()
在视图中,您可以使用:
@Html.DropDownList("CustomerSubGroupId")
@Html.DropDownList("RateList")
原因是ViewBag
封装了ViewData
,这就是消息说你没有ViewData上的密钥的原因。