ASP.NET MVC的下拉列表中有一个默认的空选项

如果没有select的下拉列表的值,是否有一种方法可以包含默认的空白选项(或文本)?

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

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

文档: DropDownList方法

例如:

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

结果:

内嵌图像

这个简单的解决scheme为我的mvc5项目工作:

鉴于:

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

只需添加一个新的项目到您想要显示在您的视图中的List<> 。 在我的例子中,我添加了一个空的“ModelItem”到我的List<ModelItem> ModelItemList 。 由于我的ModelItemID是一个Guid,我不得不在我的控制器方法检查Guid.Empty并做一些代码。 就这样。

这里给出的解决scheme对我来说效果很好: http : //forums.asp.net/t/1142484.aspx/1

其基本思想是将DropDownListAppendDataBoundItems属性设置为true ,然后在DropDownList放置一个asp:ListItem ,它将成为默认的项目,并且所有的数据绑定项目都在它后面。