【问题标题】:In ASP.NET Core, what class is used for model validation error responses?在 ASP.NET Core 中,什么类用于模型验证错误响应?
【发布时间】:2020-11-04 23:28:06
【问题描述】:

在我的 ASP.NET Core Web API 中,我使用数据注释进行模型验证。这是一个具有这些注释的类:

class CreateUserRequest {
    [Required, RegularExpression("[a-zA-Z0-9\-_]+")]
    public string Name { get; set; }

    [Required, StringLength(20, MinimumLength = 6)]
    public string Password { get; set; }
}

如果客户端尝试使用太短的密码创建用户,我会收到以下响应正文:

{
    "errors": {
        "password":[
            "The field password must be a string with a minimum length of 6 and a maximum length of 20."
        ]
    },
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId":"|a301aaae-43dd49e731beb073."
}

我希望从 API 返回的所有错误都具有一致的结构,以便客户端更轻松地处理错误。是否有一个类可以用来为其他错误情况获取相同的结构?

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

    您正在寻找ValidationProblemDetails

    如果您想在响应中返回其他属性,您可以简单地扩展上述类并添加您需要的任何内容,然后使用您的类的实例调用 ControllerBase.ValidationProblem(ValidationProblemDetails),而不是使用对 BadRequest() 的标准调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 2020-04-17
      • 2018-06-27
      • 2013-11-08
      • 1970-01-01
      相关资源
      最近更新 更多