2010-02-22 38 views
0

我开始研究MVC,尝试添加下拉列表,使建筑asp.net的MVC下拉列表没有ViewData的项目

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

但它显示错误

有IEnumerable类型的”无ViewData的项目'有钥匙'ddl'

为什么?我使用简单的代码,只传递名称参数,那么为什么错误?

回答

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

要了解更多看看

0

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

1

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

在控制器:

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

那么将创建包含给定值的选择元件。欲了解更多信息,请阅读this article