@html.dropdownlist 设置默认值,关于c#:Html.EnumDropdownListFor:显示默认文本

在ASP.NET MVC中使用@Html.EnumDropDownListFor创建下拉列表时,如何设置默认的提示文本,例如"选择许可证",并解决在用户未选择枚举值时的验证错误。讨论包括将SelectedLicense属性改为可为空的枚举,使用Required属性,以及在视图和控制器中设置默认值的方法。
摘要由CSDN通过智能技术生成

在我看来,我有一个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"})

但是现在的问题是当我运行它时,我的下拉列表看起来像这样

f1f9b9db021bc237ae03524152f962ad.png

因此,默认情况下不会显示我要显示的默认文本。

如果用户选择"选择许可证"并尝试提交表单,它会显示一条错误消息"选择许可证",但不会显示为默认文本。

我需要改变什么?

附:图像是页面加载时的屏幕截图。 默认情况下,它将显示"试用"作为选定选项。

尝试更改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; }

}

最后&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值