我开始研究mvc,尝试添加下拉列表,构建
<%= Html.DropDownList("ddl") %>
但它显示错误
没有具有键“ddl”的“IEnumerable”类型的 ViewData 项
为什么?我使用简单的代码,只传递名称参数,为什么会出错?
我开始研究mvc,尝试添加下拉列表,构建
<%= Html.DropDownList("ddl") %>
但它显示错误
没有具有键“ddl”的“IEnumerable”类型的 ViewData 项
为什么?我使用简单的代码,只传递名称参数,为什么会出错?
实际上Html.DropDownList
是一个创建 htmlselect
元素的 HTML 助手。当您ddl
作为参数传递时,它期望获得一个数组或列表或类似的东西(一个对象实现IEnumerable
接口)来填充下拉列表。试试这样:
在控制器中:
ViewData["ddl"]=new string[]{'Jan', 'Feb','Mar','Apr'.......'Dec'};
然后它将创建一个包含给定值的选择元素。欲了解更多信息,请阅读这篇文章。
这是在 ASP.NET-MVC 中添加 DropDownList 的示例。正如错误所说,您需要在 ViewData 中提供一个“IEnumerable”类型的项目和一个键“dll”。
"There is no ViewData item of type 'IEnumerable'"
这意味着辅助方法需要一个类型的项目,'IEnumerable'
例如,List<>
具有 Id'ddl'
如果您尝试显示包含来自某些静态源的项目的 DropDownList,这是执行此操作的一种方法。
// create new IEnummerable
List<string> ddl =
new List<string>(new [] {"item1","item2" };
// add Items
ddl.Add("Item1");
ddl.Add("Item2");
// return View which holds ddl now
ViewData["ddl "] = ddl ;
return View();
如需更多见解,请查看