【发布时间】:2010-06-11 23:09:32
【问题描述】:
在我的控制器中,我创建了一个 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"])
【问题讨论】:
-
在视图中使用:
@Html.DropDownList("TitleList"),无需额外转换即可工作
标签: c# asp.net-mvc enums html-helper viewdata