在我看来,我有一个enumdropdownlist(Asp.Net MVC 5.1中的一项新功能)。
@Html.EnumDropDownListFor(m => m.SelectedLicense,new { @class="form-control"})
如果执行上面的代码,我将得到以下枚举的下拉列表。
public enum LicenseTypes
{
Trial = 0,
Paid = 1
}
但默认情况下,我希望我的下拉列表具有一个值(自定义文本)
这就是我尝试过的
@Html.EnumDropDownListFor(m => m.SelectedLicense,"Select a license" ,new { @class="form-control"})
但是现在的问题是当我运行它时,我的下拉列表看起来像这样
因此,默认情况下不会显示我要显示的默认文本。
如果用户选择"选择许可证"并尝试提交表单,它会显示一条错误消息"选择许可证",但不会显示为默认文本。
我需要改变什么?
附:图像是页面加载时的屏幕截图。 默认情况下,它将显示"试用"作为选定选项。
尝试更改LicenseTypes的Index从1开始而不是0,如下所示:
public enum LicenseTypes
{
Trial = 1,
Paid = 2
}
然后,您可以使用Range attribute验证所选的许可证类型,如下所示:
public class YourViewModel
{
//Other properties
[Range(1,int.MaxValue,ErrorMessage ="Select a correct license")]
public LicenseTypes LicenseTypes { get; set; }
}
最后&#