我開始研究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。