我开始研究MVC,尝试添加下拉列表,使建筑asp.net的MVC下拉列表没有ViewData的项目
<%= Html.DropDownList("ddl") %>
但它显示错误
有IEnumerable类型的”无ViewData的项目'有钥匙'ddl'
为什么?我使用简单的代码,只传递名称参数,那么为什么错误?
我开始研究MVC,尝试添加下拉列表,使建筑asp.net的MVC下拉列表没有ViewData的项目
<%= Html.DropDownList("ddl") %>
但它显示错误
有IEnumerable类型的”无ViewData的项目'有钥匙'ddl'
为什么?我使用简单的代码,只传递名称参数,那么为什么错误?
"There is no ViewData item of type 'IEnumerable'"
这意味着辅助方法希望对如List<>
'IEnumerable'
类型的项目带有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();
要了解更多看看
Here是在ASP.NET-MVC中添加DropDownList的示例。您需要在ViewData中提供一个'IEnumerable'类型的项,并带有一个'dll'键,如错误所述。
其实Html.DropDownList
是一个HTML助手,它创建html select
元素。当您通过ddl
作为参数时,它期望获得一个数组或列表或类似的东西(一个实现IEnumerable
接口的对象)来填充下拉列表。尝试这样的:
在控制器:
ViewData["ddl"]=new string[]{'Jan', 'Feb','Mar','Apr'.......'Dec'};
那么将创建包含给定值的选择元件。欲了解更多信息,请阅读this article。