在我的 MVC 表单上,我需要将一个下拉框绑定到我的 ViewModel 上的一个枚举。我发现这样做的最佳方法在此处进行了描述。
起初它似乎可以工作,但现在我已经向我的表单添加了验证,我发现它没有绑定回 ViewModel。
这是我的剃须刀代码:
<div class="editor-field">
@Html.DropDownListFor(model => model.response,
new SelectList(Enum.GetValues(typeof(Vouchers.Models.ResponseType))),
"Please Select")
</div>
这是我对该字段的视图模型定义:
[DisplayName("Response")]
[Range(1, int.MaxValue, ErrorMessage = "You must select a response before submitting this form.")]
public ResponseType response { get; set; }
问题是我无法提交表格;即使从我的下拉列表中选择了响应,也会显示 Range 属性的验证错误消息,并且客户端验证会阻止表单提交。
我相信这是因为下拉列表的 SelectList 只包含枚举的字符串名称,而不是基础整数值。
我怎么解决这个问题?