【发布时间】:2017-04-02 01:35:06
【问题描述】:
我是 MVC 的新手。我在成分表中为UnitOfMeasure 定义了一个枚举,如下所示:
public enum UnitOfMeasure
{
oz=1,
lb=2,
ml=3,
liter=4,
gal=5
}
我已经定义了对应的字段如下:
[Required]
[Range(1, int.MaxValue, ErrorMessage = "Please make a selection")]
public UnitOfMeasure? UnitOfMeasure { get; set; }
根据需要,“请选择”在视图中显示为默认值,但我希望用户必须在保存之前进行选择。我在视图中使用EnumDropDownListFor,如下所示。
@Html.EnumDropDownListFor(model => model.UnitOfMeasure,
"--Please select--",
new { @class = "form-control" })
两个问题。首先,当用户没有进行选择时,错误消息不会出现,其次,我根本无法保存任何选择(显然没有选择符合范围标准)。我做错了什么?
【问题讨论】:
-
删除
[Range(1, int.MaxValue, ErrorMessage = "Please make a selection")]属性。所需要的只是您的[Required]属性(并在该属性中添加ErrorMessage。您是否包含@ValidationMessageFor(m => m.UnitOfMeasure)以显示消息? -
解决了!谢谢斯蒂芬!
标签: c# asp.net-mvc razor enums data-annotations