MVC2 ViewData问题

Joe*_*Joe 3 model-view-controller asp.net-mvc-2

我正在尝试通过ViewData将一些项目列表传递给视图以创建下拉列表.这应该不会太难,但我是MVC的新手,所以我可能会遗漏一些明显的东西.

控制器将列表分配给ViewData:

ViewData["ImageLocatons"] = new SelectList(gvr.ImageLocations);
Run Code Online (Sandbox Code Playgroud)

并且视图尝试将其呈现到下拉列表中:

<%= Html.DropDownList("Location", ViewData["ImageLocations"] as SelectList) %>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我收到此错误: 没有类型为'IEnumerable'的ViewData项具有键'Location'.

任何想法为什么这不起作用?此外,它不应该寻找关键的"ImageLocations"而不是位置?

GvS*_*GvS 7

如果您使用:

ViewData["Location"] = new SelectList(gvr.ImageLocations); 
Run Code Online (Sandbox Code Playgroud)

<%= Html.DropDownList("Location") %> 
Run Code Online (Sandbox Code Playgroud)

你的生活会轻松多了.

i在示例中设置ViewData时,还要检查拼写错误(缺失)(ImageLocatons => ImageLocations).这会导致您传递给DropDownList的第二个参数null.这将导致MVC引擎搜索Location.