我有一个模型,我正在使用数据注释进行验证,如下所示:
public int Id { get; set; }
[Required(ErrorMessage = "Please enter the Sample Description.")]
public string Description { get; set; }
[Required(ErrorMessage = "Please enter the Start Date.")]
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
数据通过API插入,如果验证失败,我想收到任何返回的错误消息,并将它们直接放到屏幕上。
这对于这样的事情很好:
[Required(ErrorMessage = "Please enter the Sample Description.")]
public string Description { get; set; }
但是在显示的整数属性,“Id”和客户端发送的情况下,一个不能强制转换为整数的值,例如“x”,那么你会得到一个像这样的低级别消息:
"Could not convert string to integer: x. Path 'Id', line 1, position 9.
我真正想要的是一条更像是
的信息"Please provide an integer for the Id".
无论如何,是否允许通过注释进行数据验证,并且仍然提供比我得到的更有用的消息?
答案 0 :(得分:0)
几种可能的选择:
<强>(1)强>
在MVC 4中,您可以使用Html.ValidationMessageFor.
赞:
@Html.ValidationMessageFor(model => model.YourIntField, "Please provide an integer for the Id".)
模特:
[DataType(DataType.Int)]
public int YourIntField { get; set; }
<强>(2)强> 对于任何数字验证,您必须根据您的要求使用不同的范围验证
For Integer
[Range(0, int.MaxValue, ErrorMessage = "Please enter valid integer Number")]
For Float:
[Range(0, float.MaxValue, ErrorMessage = "Please enter valid float Number")]
参考:Int or Number DataType for DataAnnotation validation attribute