c# - 如何处理所有将回答包含问题详细信息的 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
解决方案
ASP Core 遵循 HTTP 标准的做事方式。这包括为验证错误提供422等状态代码和RFC 7807格式的错误消息。
最好是这样,以便所有其他工具/API/框架都能理解它。但是,如果您确实需要更改默认行为,则需要研究自定义BadRequestObjectResult
对象。您可以在此处查看如何执行此操作的示例。
推荐阅读
- google-chrome - Chrome 扩展程序:检查用户是否评分
- ios - 在两个区域实现相同的类名
- python - python中Web自动化机器人的多线程或多处理?
- c# - 从由 system.io.file.readalltext() 读取的 Poweshell 脚本创建一个有效的系统路径
- image - 如何有效地从一批图像中提取子图像,每个子图像位于不同的位置?
- ios - Xamarin.iOS 需要哪个 Visual Studio for mac:社区、专业版或企业版
- algorithm - 比较图的最快方法
- elasticsearch - 如何跨 Elasticsearch 聚合存储桶删除重复的结果文档?
- java - 用于服务器存根的 OpenAPI 和 CLI 生成器工具
- ios - 内存泄漏,但 CGContextRelease 破坏视图