2009-09-07 7 views
1

Je suis confronté au problème que je ne peux pas mapper correctement mes valeurs de table de clé étrangère à une vue d'édition mvc asp.net.Remplissage Html.DropDownList avec la table de clé étrangère vlaues

Je l'ai placé un Html.DropDownList et fait une fonction d'aide IEnumerable/IQueryable retour:

from item in db.items select item.name 

qui remplit mon Html.DropDownList avec tous les noms dans la table de clé étrangère, mais n'a rien dans le champ de valeur .

Mais comment puis-je faire que DropDownList affiche les noms mais que le champ Valeur soit le champ ID de cette table de clé étrangère?

Répondre

3

Modifier la requête LINQ comme suit:

liste var = de pièce db.items sélectionnez Nouveau {item.id, item.name};

Ensuite, créez un SelectList comme suit:

éléments var = new SelectList (liste, "name" "id",);

et passer que SelectList au dropdownlist

Html.DropDownList ("name", objets)

+0

cela fonctionnera aussi pour la fonction Edition [Post] en utilisant un identifiant et un formcollection ou dois-je le modifier pour enregistrer également la nouvelle valeur? –

+0

Vous devez créer une nouvelle liste de sélection avec une valeur sélectionnée: > new SelectList (liste, "id", "name", itemthatneedstobeselected.id); Sachez qu'il me faut la "valeur" elle-même, dans ce cas l'id, et pas seulement un objet de votre collection. – Bavo

+0

Oui, ça a marché! Merci beaucoup pour votre aide! –

Questions connexes