如何防止EnumDropDownListFor将0设置为optionLabel值?

时间:2014-06-18 15:27:47

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

我有一个枚举下拉列表:

@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,因为此值使下拉列表有效并且不会显示任何错误消息。我怎么能阻止这个?

1 个答案:

答案 0 :(得分:11)

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

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

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

这将提供所需的输出。我还添加了@required =&#34; required&#34;它将在支持的浏览器中提供本机HTML验证。