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。
有人可以把我引向正确的方向吗?
此致,布莱希特
你不能做类似的事情吗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)
现在您也可以完全控制响应格式和状态代码。如果需要,您甚至可以附加序列化器设置。:)