Dans mon contrôleur, je crée une liste de SelectListItems et de le stocker dans le ViewData. Lorsque je lis ViewData dans ma vue, il me donne une erreur sur les types incorrects. Si je lance manuellement les types, cela fonctionne, mais il semble que cela devrait se faire automatiquement. Quelqu'un peut-il expliquer?Pourquoi Html.DropDownListFor nécessite un cast supplémentaire?
Controller:
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;
Voir:
// Doesn't work
Html.DropDownListFor(x => x.Title, ViewData["TitleList"])
// This Works
Html.DropDownListFor(x => x.Title, (List<SelectListItem>) ViewData["TitleList"])
utilisez simplement: '@ Html.DropDownList (" TitleList ")' dans la vue, cela fonctionnera sans coulée supplémentaire – Arvis