Model view controller MVC2视图数据问题

Model view controller MVC2视图数据问题,model-view-controller,asp.net-mvc-2,Model View Controller,Asp.net Mvc 2,我试图通过ViewData将一些项目的列表传递给视图,以创建一个下拉列表。这应该不会太难,但我是MVC新手,所以我可能遗漏了一些明显的东西 控制器将列表指定给ViewData: ViewData["ImageLocatons"] = new SelectList(gvr.ImageLocations); 视图尝试将其渲染到下拉列表中: <%= Html.DropDownList("Location", ViewData["ImageLocations"] as SelectList) %

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

控制器将列表指定给ViewData:

ViewData["ImageLocatons"] = new SelectList(gvr.ImageLocations);
视图尝试将其渲染到下拉列表中:

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

但是,当我运行它时,会出现以下错误: 没有具有键“Location”的“IEnumerable”类型的ViewData项

你知道为什么这样不行吗?此外,它不应该寻找关键的“ImageLocations”而不是位置吗?

如果您使用:

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


你的生活会轻松得多


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

您的ViewData是否可能已重置

尝试将视图中的断点放在您发出下拉列表的行上。
然后快速查看ViewData[“ImageLocations”]


当视图试图使用它时,确保这里有一个值。

Wow。我有一个拼写错误。我正在用你建议的另一种方法。谢谢!接得好+1用于查看输入错误。即使在你指出之后,我也不得不再读几遍:-)
<%= Html.DropDownList("Location") %>