在我的控制器中,我创建了一个SelectListItems列表并将其存储在ViewData中。当我在 View 中读取 ViewData 时,它会给我一个关于不正确类型的错误。如果我手动转换类型,它可以工作,但似乎这应该自动发生。有人可以解释吗?
控制器:
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"])