如何使用 mvc4 中的 DataAnnotations 属性检查有效输入

How to use DataAnnotations attributes in mvc4 to check for a valid input

我有一个字段只需要数字。

我正在寻找验证此字段以接受大于 0 的值且不接受字符输入的方法

我在模型中有以下字段定义:

[Range(1,int.MaxValue, ErrorMessage="Value must be at least 1")]
[RegularExpression("([1-9][0-9]*)", ErrorMessage="Must be numeric")]
public int SortOrder { get; set; }

cshtml 文件中的以下内容:

@Html.LabelFor(model => model.SortOrder)
@Html.EditorFor(model => model.SortOrder)
@Html.ValidationMessageFor(model => model.SortOrder,"*")

一切似乎都是正确的,但是,当我尝试输入字符时,出现验证错误,提示 "The SortOrder field is required"

我需要这条消息说 "Must be numeric"

我在这里错过了什么?

谢谢

您可以将特定错误消息与 [Required] 属性相关联。请注意 [RegularExpression] 属性不是必需的(它实际上只是重复 [Range] 属性)

[Required(ErrorMessage = "Must be numeric")]
[Range(1,int.MaxValue, ErrorMessage="Value must be at least 1")]
public int SortOrder { get; set; }

您在输入非数字值时得到 "The SortOrder field is required" 的原因是它未通过 'required' 验证(必须是数字(int)但它不是数字)并显示默认的 'required' 错误消息。