【问题标题】:Redirect to 404 page programmatically using asp.net MVC使用 asp.net MVC 以编程方式重定向到 404 页面
【发布时间】:2012-05-28 23:30:26
【问题描述】:

我创建了一个 Asp.net MVC 应用程序。现在需要 404 处理。

已更新 global.asax 并根据状态码显示 404 页面。还在 web.config 中添加了 customErrors 属性。它工作正常。

现在我想在任何不符合我们要求的情况下以编程方式重定向到 404。

if(!valid) 
{
    return RedirectToAction("Index", "Page404");
}

它工作正常,但有两种状态,一种是 301,然后是 404。那么如何防止 301?我只需要 404。

我怎样才能做到这一点?

【问题讨论】:

    标签: asp.net-mvc http-status-code-404


    【解决方案1】:

    简单地从你的行动中返回:

    return HttpNotFound();
    

    【讨论】:

    • 这是正确答案。如果您在为结果提供服务的同时查询数据库,并发现具有用户指定 ID 的对象不存在,您需要以编程方式将用户重定向到 404 页面(或类似操作)。
    【解决方案2】:

    在您的web.config 中,添加:

    <customErrors mode="On" >
           <error statusCode="404" redirect="/404.shtml" />
    </customErrors>
    

    当找不到请求的资源时,这将重定向到 404.shtml 页面。

    注意:在这种情况下无需以编程方式重定向用户。


    编辑: 我真的建议:

    if (Context.Response.StatusCode == 404) {
      // handle this
    }
    

    【讨论】:

      【解决方案3】:

      只需在状态码中抛出一个 404:

      Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-28
        • 1970-01-01
        • 2019-12-14
        • 1970-01-01
        • 2016-07-01
        • 1970-01-01
        • 2013-03-11
        • 1970-01-01
        相关资源
        最近更新 更多