MVC 3 Déroulant perdre de la valeur sélectionnée avec ViewBag
Je vais avoir un problème avec les listes déroulantes et le viewbag. Je suis à la définition d'une liste déroulante en utilisant le code suivant dans mon controller:
applicationGuid = new Guid(form["applicationList"]);
var applications = _applicationRepository.List();
ViewBag.applicationList = new SelectList(applications, "Id", "Name", applicationGuid);
et dans la vue, cela fonctionne parfaitement et retourne précédemment sélectionné, la valeur (applicationGuid):
@Html.DropDownList("applicationList", "")
Maintenant je veux utiliser le code suivant que je veux ajouter quelques attributs de la liste déroulante:
@Html.DropDownList("applicationList", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" })
mais pour une raison quelconque, la valeur sélectionnée n'est pas rendu (même si il est passé à la vue et je peux voir selected = "true" à l'encontre de l'article correct dans le ViewBag SelectList).
Les deux exemples ci-dessus le rendu (c'est celle qui a le selected="selected"):
<select id="applicationList" name="applicationList"><option value=""></option><option selected="selected" value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select>
et comme (sélectionné est parti!!):
<select class="required" id="applicationList" name="applicationList" rel="0"><option value=""></option><option value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select>
Quelqu'un peut-il expliquer ce que je fais mal ici, et pourquoi il est en train de perdre la valeur sélectionnée? J'ai trouvé un certain nombre de postes qui vont dans la façon dont les noms de visualiser les éléments de données ne peut pas clash, etc, mais j'ai dépouillé ce droit vers le bas avec des noms aléatoires et rien ne semble fonctionner! Est-ce un problème dans MVC3?
Vous devez vous connecter pour publier un commentaire.
Le problème semble être que lorsque vous passez le
SelectList
en tant que paramètre àHtml.DropDownList()
, il ne l'aime pas avoir le même nom que la liste déroulante.J'ai copié le code, et a rencontré le même problème que vous.
Mais dès que j'ai changé
à
Il produit le travail de sortie:
Je ne sais pas pourquoi c'est le cas, mais il est votre solution de contournement.