我正在尝试在 .net core 3.1 中开发 Web API。我目前有一个添加玩家的模型
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
因此添加播放器的输入将类似于 ''' { "firstname": "Tyler", "lastname": "moss", "email": "tyler.moss@gmail.com" }
但是,我想要一个定制的输出,比如
{ “id”:12,“firstName”:“Tyler”,“lastName”:“moss”,“email”:“tyler.moss@gmail.com”,“operation”:“Add Player”,“statusCode”: 200,“错误消息”:[] }
错误消息必须是包含错误消息的列表。
但是,当我在类中添加 [Required] 属性时,Web API 甚至无需调用我的控制器即可返回输出。
{ "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "出现一个或多个验证错误。", "status": 400, "traceId" : "|76e9e181-48e90548c2ff0d94.", "errors": { "LastName": [ "LastName 字段是必需的。" ] } }
我想访问控制器中的模型错误,以便我可以创建自己的响应 JSON 响应,例如
{“id”:0,“firstName”:“Tyler”,“lastName”:“”,“email”:“tyler.moss@gmail.com”,“操作”:“添加播放器”,“statusCode”:400 , "errorMessage": [ "LastName 属性是必需的。" ] }
我知道我可以通过在控制器中使用 ModelState 来访问验证错误,但它并没有击中我的控制器让我访问它。响应将已发送。
所以,我想知道我是否可以阻止 Web API 发回自己的响应,以及如何访问控制器中的错误。