gpt4 book ai didi

c# - 向 ASP.NET Core 3.1 标准 JSON BadRequest 响应添加详细消息

转载 作者:行者123 更新时间:2023-12-05 00:45:31 27 4
gpt4 key购买 nike

我的 ASP.NET Core 3.1 应用程序中有一个 Controller ,它在其中一种情况下返回 BadRequest()。默认情况下,它会生成 json 响应:

{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"traceId": "|492dbc28-4cf485d536d40917."
}

这很棒,但我想添加一个带有特定消息的 detail 字符串值。

当我返回 BadRequest("msg") 时,响应是纯文本 msg

当我这样做 BadRequest(new { Detail = "msg"}) 时,响应是一个 json:

{
"detail": "msg"
}

哪个更好,但我也想保留原始 json 数据。

我的目标是返回这种响应:

{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"detail": "msg",
"status": 400,
"traceId": "|492dbc28-4cf485d536d40917."
}

有没有办法做到这一点?

最佳答案

ControllerBase.Problem方法非常适合这种情况。这是一个产生所需响应的示例:

public IActionResult Post()
{
// ...

return Problem("msg", statusCode: (int)HttpStatusCode.BadRequest);
}

为了完整起见,这是一个输出示例:

{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"detail": "msg",
"traceId": "|670244a-4707fe3038da8462."
}

关于c# - 向 ASP.NET Core 3.1 标准 JSON BadRequest 响应添加详细消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63301306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com