2009-11-22 6 views
3

J'ai le code suivant mais il ne sélectionne jamais la valeur que je veux.Comment créer un élément de liste de sélection sélectionné dans asp.net mvc?

 List<SelectListItem> list = new List<SelectListItem>(); 
    SelectListItem one = new SelectListItem() { Text = "MyTest", Value = "MyTest"}; 
    SelectListItem two= new SelectListItem() { Text = "Test2", Value = "Test2" }; 

    if (id == "MyTest") 
    { 
     one .Selected = true; 
    } 
    else 
    { 
     two.Selected = true; 
    } 
    list.Add(one); 
    list.Add(two); 
    ViewData["DDL"] = new SelectList(list, "value", "text"); 

Je ne suis pas sûr de ce que je fais mal

à mon avis je

<%= Html.DropDownList("DDL") %> 
+1

Je pense que vous avez besoin Html.DropDownList (« DDL », ViewData [ « DDL »]), mais je ne suis pas sûr que je ne l'ai jamais utilisé cela. – configurator

+0

Je ne suis pas sûr, mais vous voudrez peut-être ajouter les éléments à la liste de sélection avant de déterminer lequel est sélectionné. – Jason

Répondre

7

Vous devez utiliser:

ViewData["DDL"] = new SelectList(list, "value", "text", id == "MyTest" ? "MyTest" : "Test2"); 

Vous devez définir la valeur sélectionnée dans Constructeur SelectList.

EDIT

Réponse à la question:

Vous n'avez pas à fournir une liste de constructeur SelectList. Cela peut être une collection de n'importe quel objet. Vous devez juste fournir la clé, la valeur et la valeur sélectionnée. Votre code pourrait aussi ressembler à:

var selectItems = new Dictionary<string, string> {{"MyTest", "MyTest"}, {"Test2", "Test2"}}; 
ViewData["DDL"] = new SelectList(selectItems, "Key", "Value", id == "MyTest" ? "MyTest" : "Test2"); 
+5

Alors, quel est le point de celui de SelectListItem? – chobo2

Questions connexes