如何将空选项添加到下拉列表中

时间:2012-04-19 20:15:01

标签: c# asp.net-mvc

我正在尝试过滤掉一些下拉列表,仅显示有效的项目。但同时我想添加一个空列表项作为第一个和默认选项,因为并非所有下拉列表都需要选择。

这是我用来确保显示活动项但不确定如何添加空列表项功能的代码。

IOrderedQueryable<VisitType> visitTypes = 
    _visitTypeRepository.FindAll().OrderBy(a => a.Description);

viewModel.VisitTypes = visitTypes
    .Where(a=>a.IsActive ?? false)
    .ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString());

这是我的VisitType代码:

[MetadataType(typeof(VisitTypeMetadata))]
[ScaffoldTable(true)]
[LocalizedDisplayName("EntityNamePlural", NameResourceType = typeof(Resources.Entities.VisitType))]
[DisplayColumn("Description", "Description", false)]
public partial class VisitType
{

    public static VisitType All = new VisitType() { Description = "All", VisitTypeId = 0 };

    public string ValueDescription
    {
        get { return this.VisitTypeId.ToString() + "|" + Description; }
    }


    public class VisitTypeMetadata
    {
        [ColumnOrder(0)]
        [ScaffoldColumn(false)]
        [Filter(Enabled = false)]
        [DefaultBoolean(Checked = true)]
        [DisplayName("Active")]
        public object IsActive { get; set; }

        [ColumnOrder((1))]
        public object Description { get; set; }

        [ScaffoldColumn(false)]
        public object VisitActivityEntries { get; set; }
    }
}

任何帮助或想法都会很棒。谢谢!

2 个答案:

答案 0 :(得分:2)

检查这个问题的答案,它几乎是重复的,并准确回答你在这里寻找什么

Adding a default SelectListItem

return new[] { new SelectListItem { Text = "", Value = "" } }.Concat(
       visitTypes
.Where(a=>a.IsActive ?? false)
.ToSelectList("VisitTypeId", "Description", viewModel.VisitTypeId.ToString()));

答案 1 :(得分:0)

我使用了SelectedIndex = -1;过去效果很好。