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# 行为不一致:手动返回请求时ASP.NET Core中的错误响应对象_C#_Asp.net Core_.net Core - Fatal编程技术网

C# 行为不一致:手动返回请求时ASP.NET Core中的错误响应对象

C# 行为不一致:手动返回请求时ASP.NET Core中的错误响应对象,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我有一个ASP.NET Core REST Api,具有静态和动态验证 当我没有指定所需的属性时,中间件会自动生成一条漂亮的错误消息: { "errors": { "status": [ "Required property 'status' not found in JSON. Path '', line 37, position 1." ] }, &qu

我有一个ASP.NET Core REST Api,具有静态和动态验证

当我没有指定所需的属性时,中间件会自动生成一条漂亮的错误消息:

{
    "errors": {
        "status": [
            "Required property 'status' not found in JSON. Path '', line 37, position 1."
        ]
    },
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "|a6b5a076-4b400dadb53f75e7."
}
我还进行了某种动态验证,手动填充ModelState并返回一个BadRequest

简化示例:

ModelState.AddModelError("smh_data.materials.country_of_origin", "Field is required.");
return BadRequest(ModelState);
但在本例中,响应如下所示:

{
    "smh_data.materials.country_of_origin": [
        "Field is required."
    ]
}

如何获得相同的响应对象,包括上述traceId、类型、标题和状态?

而不是调用
return BadRequest()
,调用。这将创建一个设置为
BadRequest
的对象,用
ModelState
错误填充它,然后返回它

ValidationProblem()
的重载允许进一步定制返回的响应。

另请参见:(类似,但不完全相同)。