枚举保存失败,不显示错误信息
Enum save failing, error message not displayed
我是 MVC 的新手。我在我的 Ingredient table 中为 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; }
"Please select",根据需要,在视图中显示为默认值,但我希望用户必须在保存之前进行选择。我在视图中使用 EnumDropDownListFor
,如下所示。
@Html.EnumDropDownListFor(model => model.UnitOfMeasure,
"--Please select--",
new { @class = "form-control" })
两个问题。首先,当用户没有进行选择时,不会出现错误消息,其次,我根本无法保存任何选择(显然没有选择符合范围标准)。我做错了什么?
如果表单未提交,但未显示错误消息,则表示您没有包含消息的占位符。您需要包括
@Html.ValidationMessageFor(m => m.UnitOfMeasure)
jquery.validate.unobtrusive.js
插件解析你的EnumDropDownListFor()
方法生成的html中的data-val-*
属性,并将规则添加到jquery.validate.js
,包括通过充当消息占位符的元素。你的情况是none,所以什么都显示不了,但是表单无效,没有提交。
请注意,您的 [Range]
属性是不必要的,因为 [Required]
属性已经意味着您必须 select enum
值之一。您可以简单地使用
[Required(ErrorMessage = "Please make a selection")]
public UnitOfMeasure? UnitOfMeasure { get; set; }
我是 MVC 的新手。我在我的 Ingredient table 中为 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; }
"Please select",根据需要,在视图中显示为默认值,但我希望用户必须在保存之前进行选择。我在视图中使用 EnumDropDownListFor
,如下所示。
@Html.EnumDropDownListFor(model => model.UnitOfMeasure,
"--Please select--",
new { @class = "form-control" })
两个问题。首先,当用户没有进行选择时,不会出现错误消息,其次,我根本无法保存任何选择(显然没有选择符合范围标准)。我做错了什么?
如果表单未提交,但未显示错误消息,则表示您没有包含消息的占位符。您需要包括
@Html.ValidationMessageFor(m => m.UnitOfMeasure)
jquery.validate.unobtrusive.js
插件解析你的EnumDropDownListFor()
方法生成的html中的data-val-*
属性,并将规则添加到jquery.validate.js
,包括通过充当消息占位符的元素。你的情况是none,所以什么都显示不了,但是表单无效,没有提交。
请注意,您的 [Range]
属性是不必要的,因为 [Required]
属性已经意味着您必须 select enum
值之一。您可以简单地使用
[Required(ErrorMessage = "Please make a selection")]
public UnitOfMeasure? UnitOfMeasure { get; set; }