Il y a quelques messages à ce sujet sur Stack Overflow mais aucun n'apporte de réponse qui semble résoudre le problème dans ma situation actuelle.
J'ai une page contenant un tableau, dont chaque ligne comporte un certain nombre de champs de texte et une liste déroulante. Toutes les listes déroulantes doivent utiliser les mêmes données de SelectList et je les ai configurées comme suit :
Contrôleur
ViewData["Submarkets"] = new SelectList(submarketRep.AllOrdered(), "id", "name");
Voir
<%= Html.DropDownList("submarket_0", (SelectList)ViewData["Submarkets"], "(none)") %>
J'ai utilisé exactement cette configuration à de nombreux endroits, mais pour une raison quelconque, dans cette vue particulière, j'obtiens l'erreur suivante :
Il n'existe pas d'élément ViewData de type 'IEnumerable' dont la clé est 'submarket_0'.
1 votes
Avez-vous essayé ?
<%= Html.DropDownList("submarket_0", ((SelectList)ViewData["Submarkets"]).Items, "(none)") %>
DropDownList prendIEnumerable<SelectListItem>
.0 votes
@LukLed - c'est en effet comme ça que j'ai fini par trouver la source de l'erreur :) ainsi que des informations provenant d'autres posts ! Merci
0 votes
<%= Html.DropDownList("submarket_0", ViewData["Submarkets"] as IEnumerable<SelectListItem>, "(none)") %>
0 votes
J'ai rencontré ce problème aujourd'hui et j'ai découvert que le deuxième argument de mon aide DropDownList était nul, conformément à la conclusion ci-dessous de @jonathansewell.