首页 文章

使用asp.net MVC以编程方式重定向到404页面

提问于
浏览
11

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

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

现在,当任何不符合我们要求的东西时,我想以编程方式重定向到404 .

即if(!valid){return RedirectToAction(“Index”,“Page404”); }

它工作正常,但有2个状态一个是301然后404.所以请让我知道如何防止301.我只需要404 .

请让我知道如何实现这一目标?

谢谢,Laxmilal Menaria

3 回答

  • 41

    web.config 中,添加:

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

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

    Note: 无需以编程方式重定向用户以应对此类情况 .


    EDIT: 我字面上建议:

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

    只需从您的行动中返回:

    return HttpNotFound();
    
  • 2

    只需在状态代码中删除404:

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

相关问题