错误:没有ViewData

时间:2013-10-28 11:06:43

标签: vb.net asp.net-mvc-4

我是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>

1 个答案:

答案 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上的密钥的原因。