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

时间:2015-03-09 16:07:39

标签: asp.net asp.net-mvc-4 data-annotations

我的字段只需要数字。

我正在寻找验证此字段以接受超过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,"*")

一切似乎都是正确的,但是,当我尝试输入字符时,我有一个验证错误,说“需要SortOrder字段”

我需要此消息说“必须是数字”

我在这里缺少什么?

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

输入非数字值时“需要SortOrder字段”的原因是它未通过“必需”验证(必须为数字int })但它不是数字)并显示默认的“必需”错误消息。