0

我是 mvc4(asp.net(vb.net), razor engine ) 的新手。这让我很烦。如果我完成表格并提交它,它在负载上完美运行。
它显示以下错误。

没有具有键 CustomerGroupId 的“iEnumerable”类型的视图数据

在控制器中(获取)

 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>
4

1 回答 1

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 上的密钥。

于 2013-10-28T11:26:42.567 回答