Chr*_*ens 5 c# asp.net-mvc razor
我有一个包含多个DropDownListFors的创建视图.每次创建一个新对象时,只有一个DropDownListFors应该有一个值,我希望其他人在选择了optionLabel时返回0作为结果.
如何将0指定为DropDownListFor的optionLabel的值?
编辑:这是我的视图中的DropDownListFor代码示例:
@Html.DropDownListFor(model => model.cardReward.ID, new SelectList(ViewBag.cardReward, "Id","Name"), "None")
Run Code Online (Sandbox Code Playgroud)
当我渲染页面时,它会在顶部创建一个列为None的列表,如下所示:
<option value>None</option>
Run Code Online (Sandbox Code Playgroud)
我希望它是这样的:
<option value="0">None</option>
Run Code Online (Sandbox Code Playgroud)
hea*_*vyd 10
在DropDownFor的文档中,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);
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用它:
@Html.DropDownListFor(model => model.cardReward.ID, new SelectList(ViewBag.cardReward, "Id","Name").InsertEmptyFirst("None", "0"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9302 次 |
| 最近记录: |