mvc:如何将一个初始Item添加到DropDownList,其Key为0,并显示'Show All'的描述

时间:2010-01-23 08:46:15

标签: asp.net-mvc

以下是FormViewModel的摘录:

    public SummaryFormViewModel(IEnumerable<Site> sites, IEnumerable<Landowner> landowners)
    {

        var sitesValues = sites
            .OrderBy(s => s.SiteDescription)
            .Select(s => new KeyValuePair<int, string>(s.SiteId, s.SiteDescription));
        this.Sites = new SelectList(sitesValues, "Key", "Value");

我想插入(作为第一项)一个自动成为默认值的值。它的键为0,描述为“全部显示”

基本上我向用户提供组合框以允许他们过滤结果。

我需要一个简洁的方法将这个初始行添加到SelectList

任何人都可以告诉我,谢谢你提前

Ĵ

2 个答案:

答案 0 :(得分:2)

您可以使用.ToList()然后使用.Insert()添加新值。

示例:

    var sitesValues = sites
        .OrderBy(s => s.SiteDescription)
        .Select(s => new KeyValuePair<int, string>(s.SiteId, s.SiteDescription))
        .ToList();
    sitesValues.Insert(0, new KeyValuePair<int, string>(0, "Show All"));

    this.Sites = new SelectList(sitesValues, "Key", "Value");

答案 1 :(得分:1)

HTML.Dropdown方法的一个重载接受第一个项目的标签。类似的东西:

Html.Dropdown("MyDropdown", Model.Sites, "Show All")

请参阅http://msdn.microsoft.com/en-us/library/dd492883.aspx