2010-02-22 69 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