在我的控制器中,我創建了一個SelectListItems的列表,並將其存儲在ViewData中。當我在View中讀取ViewData時,它給我一個關於不正確類型的錯誤。如果我手動轉換它的工作類型,但似乎會自動發生。有人可以解釋嗎?爲什麼Html.DropDownListFor需要額外的投射?
控制器:
enum TitleEnum { Mr, Ms, Mrs, Dr };
var titles = new List<SelectListItem>();
foreach(var t in Enum.GetValues(typeof(TitleEnum)))
titles.Add(new SelectListItem()
{ Value = t.ToString(), Text = t.ToString() });
ViewData["TitleList"] = titles;
查看:
// Doesn't work
Html.DropDownListFor(x => x.Title, ViewData["TitleList"])
// This Works
Html.DropDownListFor(x => x.Title, (List<SelectListItem>) ViewData["TitleList"])
只是使用:'@ Html.DropDownList(「TitleList」)'在視圖中,這將工作沒有額外的鑄件 – Arvis 2013-09-30 23:23:39