ASP.NET MVC实现404跳转的代码实例


当前第2页 返回上一页

web.config中的写法


1

2

3

4

5

6

</system.webServer>

  <httpErrors errorMode="Custom" existingResponse="Replace">

  <remove statusCode="404" subStatusCode="-1" />

  <error statusCode="404" prefixLanguageFilePath="" path="/ErrorPage/NotFound" responseMode="ExecuteURL" />

  </httpErrors>

</system.webServer>

与上面不同的就是responseMode="ExecuteURL"。

IIS中的操作

两者选其一即可

博主最后选择的这种方法,但是这种方法有几个坑需要注意!

1.不能指定网站相对目录下的静态HTML文件,比如404.html。

2.指定的动态页面cshtm、aspx等,需指定响应码为404。

以上两种情况如果不注意,那么你的404返回的响应码不是404也不是302而是200。

因为这种方法是返回网站根目录下的一个网页来作为404页面,而静态页面只要能访问到,那肯定就是200了。动态cshtml或者aspx如果没指定响应码,那么返回200也不奇怪。

所以说具体做法如下(以ASP.NET MVC为例):

1

2

3

4

5

6

7

8

9

public class ErrorPageController : Controller

{

  public ActionResult NotFound()

  {

    Response.Status = "404 Not Found";

    Response.StatusCode = 404;

    return View();

  }

}

建一个控制器ErrorPage,里面可以定义各种错误页面,这里只是404页面。

然后建一个NotFound视图,把404页面写漂亮一点。

OVER。

这个时候再去请求不存在的路径。

完美解决!

以上就是ASP.NET MVC实现404跳转的代码实例的详细内容!

返回前面的内容

相关阅读 >>

asp.net页面事件加载的顺序是什么样的

asp.net core中的多语言支持的图文详解

asp.net core mvc中如何把二级域名绑定到特定的控制器上

asp.net mvc 遇到json循环调用的问题应该怎么解决?

分享一个asp.net发送邮件实例

asp.net中webform的生命周期相关讲解

关于core mvc压缩样式的实例详解(asp)

asp.net部署到iis常见问题的解决方法_实用技巧

介绍oom中automapper的使用方法

关于asp.net core网站在docker中运行的详解

更多相关阅读请进入《asp.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...