【发布时间】:2015-05-06 12:01:01
【问题描述】:
我正在构建一个 ASP.NET Web API 2。 我将 JSON 数据序列化到我的模型中,该模型使用 DataAnnotations,更具体地说是 Range 和 RegularExpression。
一切都很好,但是,当 ModelState 无效时,我希望能够将所有无效值返回给客户端。
例子:
public class Book {
...(fields removed for brevity)
[Range(0, 100)]
public int? Pages { get; set; }
}
目前当客户端发送一个无效范围(例如-1)的消息时,返回的消息是:“字段Pages必须在0到100之间。”
我想返回类似这样的信息:“页面字段必须介于 0 和 100 之间。当前值为 -1。”
【问题讨论】:
-
您无法访问属性中的属性值(您只能使用常量/静态值)。不知道为什么需要这样做(用户刚刚输入的内容应该很明显),但您需要覆盖
$.validator.unobtrusive.adapters.add()方法并添加您自己的消息 -
您始终可以实现自己的属性来检查模型验证。派生自
ValidationAttribute。 -
查看
http://stackoverflow.com/questions/16100300/asp-net-mvc-custom-validation-by-dataannotation -
按我的意愿工作。谢谢。
-
@user3455179,注意不会给你客户端验证
标签: c# asp.net-mvc asp.net-web-api data-annotations modelstate