ASP.Net Core 错误 JSON

Era*_*cht 2 c# asp.net json asp.net-core-mvc asp.net-core

我正在玩一点 ASP.NET Core。我正在创建一个基本的 webapi。我想在出现问题时显示 JSON 错误。

打印屏幕在屏幕上显示我想要的内容。唯一的问题是发送时状态码为 200。

打印屏幕

catch (NullReferenceException e)
{
    return Json(NotFound(e.Message));
}
Run Code Online (Sandbox Code Playgroud)

我可以通过这样做来解决它:

return NotFound(new JsonResult(e.Message) {StatusCode = 404);
Run Code Online (Sandbox Code Playgroud)

但我不喜欢这样,因为现在您可以使用 NotFound 指定状态代码 500。

有人可以把我引向正确的方向吗?

此致,布莱希特

Swa*_*eek 5

你不能做类似的事情吗return NotFound(e.Message);

或者您可能有自己的错误文档格式并选择return NotFound(new ErrorDocument(e.message));

如果您必须返回 JsonResult,请执行以下操作:

return new JsonResult(YourObject) { StatusCode = (int)HttpStatusCode.NotFound };
Run Code Online (Sandbox Code Playgroud)

现在您也可以完全控制响应格式和状态代码。如果需要,您甚至可以附加序列化器设置。:)