如何处理将回答所包含问题详细信息的所有ValidationException

时间:2019-06-04 13:01:03

标签: c# asp.net asp.net-web-api asp.net-core

告诉我如何为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 notcorrect”),这将作为响应:

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

1 个答案:

答案 0 :(得分:0)

ASP Core遵循HTTP标准的处理方式。这包括为422提供RFC 7807之类的状态代码和validation errors格式的错误消息。

最好采用这种方式,以便所有其他工具/ API /框架都可以理解。但是,如果确实需要更改默认行为,则需要研究自定义BadRequestObjectResult对象。您可以see here来获取有关此操作的示例。