我有一个包含多个 DropDownListFor 的创建视图。每次创建新对象时,只有 1 个 DropDownListFors 应该有值,我希望其他对象在选择 optionLabel 时返回 0 作为结果。
如何将 0 指定为 DropDownListFor 的 optionLabel 的值?
编辑:
这是我认为的 DropDownListFor 代码的示例:
@Html.DropDownListFor(model => model.cardReward.ID, new SelectList(ViewBag.cardReward, "Id","Name"), "None")
当我渲染页面时,它会创建顶部没有的列表,如下所示:
<option value>None</option>
我希望它是这样的:
<option value="0">None</option>
In the DropDownFor 的文档 the optionLabel
参数(您传递“None”的地方)描述为:
默认空项目的文本。
所以这被设计为始终是一个空项目。您需要在选择列表中添加一个附加项目才能获得 0 值。
我使用了以下扩展方法来完成此操作(抱歉未经测试,可能存在小错误):
public IEnumerable<SelectListItem> InsertEmptyFirst(this IEnumerable<SelectListItem> 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"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)