返回带有自定义错误消息的 HTTP 结果代码 404
本文关键字:HTTP 结果 代码 消息 自定义 错误 返回 | 更新日期: 2023-09-27 18:35:14
我有这个控制器:
[HttpGet]
public ActionResult AjaxCall(string input)
{
// ...
if (!success)
{
Response.StatusCode = 404;
ViewBag.Output = ex.Message;
return View();
}
// ...
}
此控制器处理一些 AJAX 调用。网络浏览器发送呼叫,我通过HTTP错误代码返回结果。我正在使用两个错误代码:200(成功),404(失败)。
这是我的视图的样子:
@{
Layout = null;
}
@Html.Raw(ViewBag.Output)
"我的视图"只是将错误消息打印到页面上。
一切看起来都很好,直到页面状态代码返回 404 错误代码。然后,代码忽略我的"ViewBag.Output"消息。我总是收到以下消息,而不是我的自定义消息:
您要查找的资源已被删除,具有其名称 已更改或暂时不可用。
无论发生哪个错误。如您所猜测的,这是系统默认的404错误代码消息。
如何在自定义消息中返回 404 错误代码?
如果你使用AJAX,我想你发送一些JSON/XML字符串或返回404。如果是这样,请使用字符串而不是操作结果作为操作的返回类型。此外,您可能会发现这个问题很有帮助:返回 404 错误 ASP.NET MVC 3