Il n'y a pas de ViewData élément de type 'IEnumerable<SelectListItem>" qui a la clé de la "Profession"
Que j'ai à ajouter, sélectionnez la liste à la page d'inscription. Et je veux enregistrer les éléments sélectionnés dans datebase. J'ai quelque chose comme ça:
Dans la page d'affichage de:
<%: Html.DropDownListFor(m => m.Profession, (IEnumerable<SelectListItem>)ViewData["ProfessionList"])%>
<%: Html.ValidationMessageFor(m => m.Profession)%>
En classe de modèle:
[Required]
[DisplayName("Profession")]
public string Profession { get; set; }
Et dans le contrôleur:
ViewData["ProfessionList"] =
new SelectList(new[] { "Prof1", "Prof2", "Prof3", "Prof4", "Prof5"}
.Select(x => new { value = x, text = x }),
"value", "text");
Et j'obtiens l'erreur: Il n'y a pas de ViewData élément de type 'IEnumerable" qui a la clé de la "Profession".
Que puis-je faire pour le faire fonctionner?
Il la jeta dans "SelectList", pourquoi êtes-vous en le jetant dans IEnumerable<SelectListItem> ?? DropDownListFor méthodes accepte selectList.
Je l'ai jeté dans "SelectList", mais j'obtiens la même erreur. Je pense qu'il s'attend à IEnumerable<SelectListItem> c'est pourquoi je l'utilise.
Je l'ai jeté dans "SelectList", mais j'obtiens la même erreur. Je pense qu'il s'attend à IEnumerable<SelectListItem> c'est pourquoi je l'utilise.
OriginalL'auteur Marta | 2011-03-09
Vous devez vous connecter pour publier un commentaire.
Je recommande l'utilisation de modèles de vue au lieu de ViewData. Donc:
et dans votre contrôleur:
et de votre point de vue:
OriginalL'auteur Darin Dimitrov
Il vous suffit de définir SelectList de vous afficher comme ça:
OriginalL'auteur Marta