Dans MVC3, j'ai ce code sur mon contrôleur. Il récupère une liste d'IDs\Noms de la table d'installation et crée un ViewBag
var vs = dba.Installation.OrderBy(q => q.InstName).ToList();
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName");
Maintenant, à mon avis. Je veux rendre la liste dans une liste déroulante. J'ai utilisé l'assistant HTML qui fonctionne bien ...
@Html.DropDownList("InstId",(SelectList)ViewBag.Vessels, "- Select one -")
Je dois définir le premier élément de la liste ViewBag en tant que valeur sélectionnée par défaut, au lieu de "- Select one -" text.
Comment puis-je le faire?
Merci d'avance!
Il y a une surcharge pour le constructeur SelectList
qui prend 4 arguments. Le dernier est l'objet sélectionné par défaut. Par exemple:
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", selectedValue);
Où selectedValue
est un objet de tout type figurant dans votre liste.
Je dois définir le premier élément de la liste ViewBag en tant que valeur sélectionnée par défaut, au lieu de "- Select one -" text.
Ensuite, vous devez sélectionner le premier élément de votre liste (vs
), obtenir son identifiant et l'utiliser en tant que selecedValue
dans la liste de sélection:
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName",
vs.FirstOrDefault().InstId);
Vous pouvez également créer une classe d'assistance pour la liste déroulante. Une méthode vous permettra de définir le texte comme texte par défaut pour chaque liste déroulante de votre solution.