我只想在ASP.Net Core 2.2的Web API中返回错误消息文本,
我使用以下代码返回值:
if (!ModelState.IsValid)
{
return BadRequest(ModelState.Values);
}
我得到以下答复:
[
{
"childNodes": null,
"children": null,
"key": "user.Username",
"subKey": {
"buffer": "user.Username",
"offset": 5,
"length": 8,
"value": "Username",
"hasValue": true
},
"isContainerNode": false,
"rawValue": null,
"attemptedValue": null,
"errors": [
{
"exception": null,
"errorMessage": "Username is required"
}
],
"validationState": 1
}
]
我只需要错误消息文本即可响应,
{
'data': [
Username is required,
Password is required,
],
'status': 'error'
}
答案 0 :(得分:1)
好吧,由于您使用的是ASP.NET Core 2.2,因此您实际上应该使用ApiController
属性:
[ApiController]
public class FooApiController : ControllerBase
有了它,ASP.NET Core实际上会自动为您处理不良请求,因此您甚至根本不需要在操作中进行检查。
否则,您应该使用:
ModelState.ToDictionary(x => x.Key, x => x.Value.Errors);
或者,如果您只希望错误,而不将其锁定到各个属性:
ModelState.SelectMany(x => x.Value.Errors);