我有这个控制器:
[HttpGet]
public ActionResult AjaxCall(string input)
{
// ...
if (!success)
{
Response.StatusCode = 404;
ViewBag.Output = ex.Message;
return View();
}
// ...
}
此控制器提供一些AJAX调用。 Web浏览器发送调用,我将通过HTTP-ERROR-CODES返回结果。我使用了两个错误代码: 200 (成功), 404 (失败)。
这就是我的View的样子:
@{
Layout = null;
}
@Html.Raw(ViewBag.Output)
我的视图只是在页面上显示错误消息。
在页面状态代码返回404错误代码之前一切正常。然后,代码忽略我的“ViewBag.Output”消息。而不是我的自定义消息,我总是得到这样的信息:
您要查找的资源已被删除,名称已有 已更改,或暂时无法使用。
无论发生哪种错误。如您所知,这是系统默认的404错误代码消息。
如何使用自定义消息返回404错误代码?
答案 0 :(得分:1)
如果你使用AJAX,我想你发送一些JSON / XML字符串或返回404.如果是这样,请使用 字符串而不是ActionResult作为操作的返回类型。 此外,您可能会发现此问题有用: Returning 404 Error ASP.NET MVC 3