【问题标题】:Returning HTTP Result Code 404 With a Custom Error Message返回带有自定义错误消息的 HTTP 结果代码 404
【发布时间】:2014-12-25 18:31:02
【问题描述】:

我有这个控制器:

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    相关资源
    最近更新 更多