コントローラーでSelectListItemsのリストを作成し、これをViewDataに保存します。ビューで 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"])