2014-04-23 1 views
0
@Html.DropDownListFor(model => model[i].InformationType, new List<SelectListItem> 
{ 
    new SelectListItem{ Text = "Car", Value = "01" }, 
    new SelectListItem{ Text = "Home", Value = "02" }, 
    new SelectListItem{ Text = "Boat", Value = "03" } 
}, "--none--") 

Ce qui précède crée une liste déroulante à mon avis, mais elle ne s'ouvre pas sur la valeur transmise à la vue. C'est toujours par défaut --none--. Notez que mon modèle est un IList <>MVC4 DropDownListPour ne pas sélectionner la valeur transmise

De plus, devrais-je coder ces valeurs dans mon modèle ou ma base de données? Si une autre valeur est ajoutée, je ne voudrais pas avoir à recompiler mon code, mais je préférerais que le client n'ait pas à faire un appel à la base de données chaque fois qu'il veut ouvrir une liste déroulante.

Répondre

1

Vous devez définir l'élément sélectionné:

new SelectListItem{ Text = "Boat", Value = "03", Selected = @Model.SomeValue.Equals("03") } 

Il peut être une bonne idée de créer la collection de la liste dans le contrôleur et le définir comme une propriété sur le modèle de vue qui est passé à la vue.

+0

Ça l'a fait !! Wow, j'allais dans la mauvaise direction en essayant de résoudre ce problème. Merci beaucoup! – user3566390

+0

Une question de suivi si vous êtes toujours là. J'ai ajouté le morceau sélectionné, qui a corrigé mon problème initial, mais maintenant, si je passe une valeur nulle, j'obtiens une exception de référence nulle au lieu de défaut --none--. Une idée de comment gérer les nulls? – user3566390

+0

Pouvez-vous poster le code que vous avez ajouté? –

Questions connexes