2012-04-08 26 views
0

Hier ist, was ich in meinem Controller haben:Dropdownliste in MVC

 Category x = new Category(1, "one", 0); 
     Category y = new Category(2, "two", 1); 


     List<Category> cat = new List<Category>(); 
     cat.Add(x); 
     cat.Add(y); 

     ViewData["categories"] = new SelectList(cat, "id", "name"); 

Meine Ansicht:

<%= Html.DropDownList("categories")%> 

Aber, meine Klasse-Kategorie hat eine Eigenschaft mit dem Namen idParent. Ich möchte das Dropdown-Feld zu sein mit Werten wie folgt aus: Parent -> Kategorie

public class Category {int idParent, string name, int id} 

ich so versucht:

ViewData["categories"] = new SelectList(cat, "id", "idParent" + "name"); 

aber es funktioniert nicht. Hast du irgendeine Idee?

+0

Sind Sie offen für stark typisierte Ansichten verwenden? – Shyju

+0

@Shyju Nein, ich bin es nicht. –

+0

gehen durch meine Tutorials http://www.asp.net/mvc/tutorials/javascript/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc http : //blogs.msdn.com/b/rickandy/archive/2012/01/09/cascading-dropdownlist-in-asp-net-mvc.aspx – RickAndMSFT

Antwort

1

Unterkunft um diese der Category Klasse hinzufügen Sie die gewünschten Werte zurückzukehren.

public class Category 
{ 
    int idParent; 
    string name; 
    int id; 

    public Category(int idParent, string name, int id) 
    { 
     this.idParent = idParent; 
     this.name = name; 
     this.id = id; 
    } 

    public string FormattedName 
    { 
     get {return string.format("{0}->{1}", this.idParent, this.name);} 
    } 
} 

Dann wird Ihr Select Konstruktor wird:

ViewData["categories"] = new SelectList(cat, "id", "FormattedName"); 

Sie können diesen Code auf Ihre Bedürfnisse einstellen müssen, aber es sollte Ihnen die Idee geben.

Verwandte Themen