2010-02-09 5 views
3

Je suis vraiment confus au sujet de ASP.Net MVC (2.0 RC) DropDownList. Il ne semble pas accepter mon article sélectionné.Un autre problème d'élément sélectionné DropDownList

Voici ma liste de SelectListItem (il est créé à l'intérieur boucle. Sélectionné booléenne étant)

savingTypesList.Add(new SelectListItem() { Selected = selected, Text = type.Name, Value = "" + type.SavingTypeId }); 

Création SelectList lui-même ..

return new SelectList(savingTypesList, "Value", "Text", (string)selected); 

Et mon avis ..

<p> 
    <label for="SavingType">Saving type</label> 
    <%= Html.DropDownList("SavingType", Model.SavingType, "-- select a parameter saving type --", "")%> 
    <%= Html.ValidationMessage("SavingType", "*")%> 
</p> 

Lorsque je vérifie les détails de SelectList retourné, il me montre les informations suivantes

alt text http://www.tx3.fi/selected.PNG

Comme vous pouvez le voir SelectedValue est correctement réglée et il correspond à l'élément dans le tableau Items. Lorsque je vérifie le code HTML généré, aucun n'est sélectionné. Qu'est-ce qui ne va pas?

Répondre

1

J'ai été capable de résoudre ce problème par moi-même.

Comme vous pouvez le voir sur ma vue j'ai eu DropDownList avec le nom "SavingType" et il a été lié au Model.SavingType. Tout fonctionne bien sauf la valeur sélectionnée. La seule chose que j'ai faite, c'est que j'ai changé le nom de la liste déroulante (et bien sûr des liens comme label pour = "SavingTypeList")

0

Ce problème a été démarré à partir de MVC 1.0 au moins.

Problème: lorsque DropDownList Name a la même valeur que le nom de l'objet associé, l'option sélectionnée ne sera pas sélectionnée dans le résultat.

Solution: Nom objet lié différent, Model.SavingTypeList par exemple dans votre cas. Renommer le nom DDL n'est pas recommandé car vous risquez de perdre votre liaison après la soumission du formulaire.

Questions connexes