MVC 4:如何使DropDownListFor作为optionLabel值返回0?
我有一个包含多个DropDownListFors的创建视图。 每次创建一个新对象时,只有一个DropDownListFors应该有一个值,我希望其他人在选择了optionLabel时返回0作为结果。
如何将0指定为DropDownListFor的optionLabel的值?
编辑:这是我的视图中的DropDownListFor代码示例:
@Html.DropDownListFor(model => model.cardReward.ID, new SelectList(ViewBag.cardReward, "Id","Name"), "None")
当我渲染页面时,它会在顶部创建列为None的列表,如下所示:
None
我希望它是这样的:
None
在DropDown的文档中 , optionLabel
参数(你传递“None”的地方)被描述为:
默认空项的文本。
所以这是为了永远是一个空项目。 您需要在选择列表中添加一个附加项才能获得0值。
我使用了以下扩展方法来完成此操作(抱歉未经测试,可能存在轻微错误):
public IEnumerable InsertEmptyFirst(this IEnumerable list, string emptyText = "", string emptyValue = "") { return new [] { new SelectListItem { Text = emptyText, Value = emptyValue } }.Concat(list); }
你会像这样使用它:
@Html.DropDownListFor(model => model.cardReward.ID, new SelectList(ViewBag.cardReward, "Id","Name").InsertEmptyFirst("None", "0"))
插入一个新的空字符串,这是一个例子。
@Html.DropDownListFor(x => x.ProjectID, Model.Projects, string.Empty)
- 在MVC ASPX视图中设置断点
- 如何在Visual Studio 2012上配置或设置带有ASP.NET(包含MVC)C#的Log4Net
- 如何让Html.CheckBoxFor()在字符串字段上工作?
- @ Html.ValueFor(x => x.PropertyName)和@ Model.PropertyName之间的区别是什么?
- 使用Flags枚举时如何减少ASP.NET MVC视图中的代码重复
- 应该使用MVC在每个View中使用ViewModel吗?
- 开发与Web表单应用程序一致的自定义身份validation和授权系统
- 在ASP.Net Core 2 MVC中禁用模型validation的正确方法
- MVC下拉列表未映射到模型