【问题标题】:DataAnnotations Message with the invalid value具有无效值的 DataAnnotations 消息
【发布时间】: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


【解决方案1】:

您的模型可能如下所示:

 [Range(0,100)]
 [MinValue(0, "The field Pages must be between 0 and 100")]
 public int? Pages { get; set; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多