Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 只需从web api中的modelstate获取错误消息文本_C#_Asp.net Core - Fatal编程技术网

C# 只需从web api中的modelstate获取错误消息文本

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

我只想返回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'
}

既然您使用的是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,谢谢:)