带有默认空选项的ASP.NET MVC下拉列表

时间:2009-02-03 04:23:01

标签: asp.net-mvc html.dropdownlistfor html-select

如果下拉列表中没有选定值,是否可以包含默认的空选项(或文本)?

4 个答案:

答案 0 :(得分:125)

下面将string.Empty添加到ViewData [“Menu”]项中指定的SelectList(或IEnumerable)。 select将具有id和名称MenuID

<%= Html.DropDownList( "MenuID",
                      (IEnumerable<SelectListItem>)ViewData["Menu"],
                      string.Empty ) %>

文档:DropDownList method

答案 1 :(得分:7)

例如:

    Controller :

    private void InitScreenInfoCollate()
    {   
        IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode("");
        ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null);

    }

    View :
    @Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})

结果:

inline image

答案 2 :(得分:0)

这个简单的解决方案适用于我的mvc5项目:

在视图中

@{
     Model.ModelItemsList.Add(new ModelItem{ });
     SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}

只需将新项目添加到要在视图中显示的List<>即可。 就我而言,我添加了一个空的&#34; ModelItem&#34;到我的List<ModelItem> ModelItemList。由于我的ModelItemID是一个Guid,我不得不在我的控制器方法中检查Guid.Empty并做一些代码。 多数民众赞成。

答案 3 :(得分:-6)

此处提供的解决方案非常适合我:http://forums.asp.net/t/1142484.aspx/1

基本的想法是,您将AppendDataBoundItems的{​​{1}}属性设置为DropDownList,然后将true放入asp:ListItem,这将成为DropDownList您的默认项目,包含所有数据绑定项目。