MVC中的下拉列表

时间:2012-04-08 18:34:15

标签: asp.net-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");

我的观点:

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

但是,我的类Category有一个名为idParent的属性。我希望下拉列表是这样的值字段:ParentName - &gt;类别名称

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

我试过这样:

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

但它不起作用。你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Category类添加属性以返回所需的值。

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);}
    }
}

然后您的SelectList构造函数变为:

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

您可能需要根据需要调整此代码,但它应该为您提供想法。