C# 只需从web api中的modelstate获取错误消息文本
我只想返回ASP.Net Core 2.2中web api中的错误消息文本 我使用以下代码返回值:C# 只需从web api中的modelstate获取错误消息文本,c#,asp.net-core,C#,Asp.net Core,我只想返回ASP.Net Core 2.2中web api中的错误消息文本 我使用以下代码返回值: if (!ModelState.IsValid) { return BadRequest(ModelState.Values); } 我得到以下回应: [ { "childNodes": null, "children": null, "key": "user
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'
}
既然您使用的是ASP.NET Core 2.2,那么就应该真正使用
apicController
属性:
[ApiController]
public class FooApiController : ControllerBase
有了它,ASP.NETCore实际上会自动为您处理错误请求,所以您甚至不需要在操作中进行此检查
否则,您应使用:
ModelState.ToDictionary(x => x.Key, x => x.Value.Errors);
或者,如果您只想单独显示错误,而不想对单个属性设置关键帧:
ModelState.SelectMany(x => x.Value.Errors);
既然您使用的是ASP.NET Core 2.2,那么就应该真正使用
apicController
属性:
[ApiController]
public class FooApiController : ControllerBase
有了它,ASP.NETCore实际上会自动为您处理错误请求,所以您甚至不需要在操作中进行此检查
否则,您应使用:
ModelState.ToDictionary(x => x.Key, x => x.Value.Errors);
或者,如果您只想单独显示错误,而不想对单个属性设置关键帧:
ModelState.SelectMany(x => x.Value.Errors);
您是否尝试过仅使用
return-BadRequest(ModelState)
而不是ModelState.Values
?@CalC-yes,但我无法仅获取消息文本您尝试过仅使用return-BadRequest(ModelState)
而不是ModelState.Values
?@CalC-yes,但我无法仅获取消息文本我使用ModelState.SelectMany(x=>x.Value.Errors);
然后使用foreact get item.ErrorMessage,谢谢:)我使用ModelState.SelectMany(x=>x.Value.Errors)代码>然后whit foreact get item.ErrorMessage,谢谢:)