asp.net mvc dropdownlist没有ViewData项目

时间:2010-02-22 04:07:30

标签: asp.net-mvc drop-down-menu viewdata

我开始研究mvc,尝试添加下拉列表,进行构建

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

但显示错误

  

没有类型为'IEnumerable'的ViewData项具有键'ddl'

为什么呢?我使用简单的代码,只传递name参数,为什么会出错?

3 个答案:

答案 0 :(得分:1)

实际上Html.DropDownList是一个HTML助手,可以创建html select元素。当您传递ddl作为参数时,它期望获得一个数组或列表或类似的东西(实现IEnumerable接口的对象)来填充下拉列表。试试这样:

在控制器中:

ViewData["ddl"]=new string[]{'Jan',  'Feb','Mar','Apr'.......'Dec'};

然后它将创建一个包含给定值的select元素。有关更多信息,请阅读this article

答案 1 :(得分:0)

Here是在ASP.NET-MVC中添加DropDownList的示例。你需要在ViewData中提供一个'IEnumerable'类型的项目和一个键'dll',如错误所示。

答案 2 :(得分:0)

"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();

如需了解更多信息,请查看