使用自定义错误消息返回HTTP结果代码404

时间:2014-12-25 18:31:02

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有这个控制器:

[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错误代码?

1 个答案:

答案 0 :(得分:1)

如果你使用AJAX,我想你发送一些JSON / XML字符串或返回404.如果是这样,请使用 字符串而不是ActionResult作为操作的返回类型。 此外,您可能会发现此问题有用: Returning 404 Error ASP.NET MVC 3