Moh*_*our 4 asp.net-mvc enums asp.net-mvc-5
我有一个enum下拉列表:
@Html.EnumDropDownListFor(model => model.Type, "-- Choose --", new { @class = "postfix" })
Run Code Online (Sandbox Code Playgroud)
为枚举下拉列表生成的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>
Run Code Online (Sandbox Code Playgroud)
我不希望optionLabel的值为0,因为此值使下拉列表有效并且不会显示任何错误消息.我怎么能阻止这个?
小智 12
我知道它已经过时了,但万一有人偶然发现了这个问题,这是一个有效的解决方法.
而不是使用EnumDropDownListFor,使用带有EnumHelper的标准DropDownListFor:
@Html.DropDownListFor(model => model.Type, EnumHelper.GetSelectList(typeof(yourNamespace.yourType)), "-- Choose --", new { @class = "postfix", @required = "required" })
Run Code Online (Sandbox Code Playgroud)
这将提供所需的输出.我还添加了@required ="required",它将在支持的浏览器中提供本机HTML验证.