MVC2 ViewData问题

时间:2009-12-30 15:03:35

标签: model-view-controller asp.net-mvc-2

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

控制器将列表分配给ViewData:

ViewData["ImageLocatons"] = new SelectList(gvr.ImageLocations);

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

<%= Html.DropDownList("Location", ViewData["ImageLocations"] as SelectList) %>

然而,当我运行它时,我收到此错误: 没有“IEnumerable”类型的ViewData项具有“位置”键。

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

2 个答案:

答案 0 :(得分:7)

如果您使用:

ViewData["Location"] = new SelectList(gvr.ImageLocations); 

<%= Html.DropDownList("Location") %> 

你的生活会轻松得多。

在示例中设置ViewData时,请查看拼写错误(缺少i)(ImageLocatons =&gt; ImageLocations)。这会导致您传递给DropDownList的第二个参数为null。这将导致MVC引擎搜索位置。

答案 1 :(得分:0)

您的ViewData可能已重置吗?

尝试在发出下拉列表的行上的视图中放置一个断点 然后快速观察ViewData [“ImageLocations”]。

当视图尝试使用它时,请确保此处有值。