我有这个控制器:
[HttpGet]
public ActionResult AjaxCall(string input)
{
// ...
if (!success)
{
Response.StatusCode = 404;
ViewBag.Output = ex.Message;
return View();
}
// ...
}
该控制器处理一些AJAX调用。网络浏览器发送呼叫,并且我通过HTTP-ERROR-CODES返回结果。我正在使用两个错误代码:200(成功),404(失败)。
这是我的视图的样子:
@{
Layout = null;
}
@Html.Raw(ViewBag.Output)
我的视图只是将错误消息打印到页面上。
一切正常,直到页面状态代码返回404错误代码为止。然后,代码将忽略我的“ ViewBag.Output”消息。我总是收到以下消息,而不是我的自定义消息:
您要查找的资源已被删除,名称已更改或暂时不可用。
无论发生哪个错误。如您所料,这是系统默认的404错误代码消息。
如何通过自定义消息返回404错误代码?
如果您使用AJAX,我假设您发送一些JSON / XML字符串或返回404。如果是这样,请使用string代替ActionResult作为操作的返回类型。此外,您可能会发现此问题有帮助:返回404错误ASP.NET MVC 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句