首页 > 解决方案 > 如何处理所有将回答包含问题详细信息的 ValidationException

问题描述

告诉我如何为 ValidationException 构建一个处理程序来回答这样的细节问题:

"errors": {
    "Password": [
      "The field password must be a string or massive type with a maximum length of '1'."
    ]
  },
  "title": "one or more validation errors occurred.",
  "status": 400

例如,输入包含错误,无法创建 PhoneNumber 类并抛出 ValidationException("PhoneNumber is not correct"),这将作为响应:

  "errors": {
    "PhoneNumber": [
      "PhoneNumber is not correct."
    ]
  },
  "title": "one or more validation errors occurred.",
  "status": 400

标签: c#asp.netasp.net-web-apiasp.net-core

解决方案


ASP Core 遵循 HTTP 标准的做事方式。这包括为验证错误提供422等状态代码和RFC 7807格式的错误消息。

最好是这样,以便所有其他工具/API/框架都能理解它。但是,如果您确实需要更改默认行为,则需要研究自定义BadRequestObjectResult 对象。您可以在此处查看如何执行此操作的示例。


推荐阅读