我正在尝试通过ViewData将一些项目列表传递给视图以创建下拉列表.这应该不会太难,但我是MVC的新手,所以我可能会遗漏一些明显的东西. 控制器将列表分配给ViewData: ViewData["ImageLocatons
控制器将列表分配给ViewData:
ViewData["ImageLocatons"] = new SelectList(gvr.ImageLocations);
并且视图尝试将其呈现到下拉列表中:
<%= Html.DropDownList("Location", ViewData["ImageLocations"] as SelectList) %>
但是,当我运行它时,我收到此错误:
没有类型为“IEnumerable”的ViewData项具有“位置”键.
任何想法为什么这不起作用?此外,它不应该寻找关键的“ImageLocations”而不是位置?
如果您使用:ViewData["Location"] = new SelectList(gvr.ImageLocations);
和
<%= Html.DropDownList("Location") %>
你的生活会轻松多了.
在示例中设置ViewData时,还要查看拼写错误(缺少i)(ImageLocatons => ImageLocations).这会导致传递给DropDownList的第二个参数为null.这将导致MVC引擎搜索Location.