【问题标题】:How to prevent EnumDropDownListFor set 0 as optionLabel value?如何防止 EnumDropDownListFor 将 0 设置为 optionLabel 值?
【发布时间】:2014-08-08 23:34:28
【问题描述】:

我有一个枚举下拉列表:

@Html.EnumDropDownListFor(model => model.Type, "-- Choose --", new { @class = "postfix" })

为枚举下拉列表生成的html代码是:

<select data-val="true" data-val-required="Select type of ..." id="Type" name="Type" class="valid">
    <option selected="selected" value="0">-- Choose --</option>
    <option value="1">‌Hotel</option>
    <option value="2">Flight</option>
</select>

我不希望 optionLabel 的值为 0,因为该值使下拉菜单有效并且不会显示错误消息。我怎样才能防止这种情况发生?

【问题讨论】:

标签: asp.net-mvc enums asp.net-mvc-5


【解决方案1】:

我知道它已经过时了,但以防万一有人像我一样偶然发现这个问题,这是一个有效的解决方法。

不要使用 EnumDropDownListFor,而是使用带有 EnumHelper 的标准 DropDownListFor:

@Html.DropDownListFor(model => model.Type, EnumHelper.GetSelectList(typeof(yourNamespace.yourType)), "-- Choose --", new { @class = "postfix", @required = "required" })

这将提供所需的输出。我还添加了@required = "required",它将在支持的浏览器中提供原生 HTML 验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 2020-11-07
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    相关资源
    最近更新 更多