原始写法:
<customErrors mode="On" defaultRedirect="error.aspx">
<error statusCode="404" redirect="error.aspx" />
</customErrors>
页面就直接跳转到error.aspx页面,地址栏的地址也会跟着改变,而且页面的状态码不是404而是302
改进后写法:
<customErrors mode="On" defaultRedirect="error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="error.aspx" />
</customErrors>
在error.aspx.cs的输出代码中,还得加上这么一句:
Response.StatusCode = 404;
说明:redirectMode这个属性是用来指定错误页面跳转方式的,有两个值,分别是ResponseRedirect和ResponseRewrite,默认是ResponseRedirect,这种情况是通过Response.Redict进行跳转,地址栏会改变,而ResponseRewrite则是通过Server.Transfer进行跳转,地址不变。
参考:
http://www.cnblogs.com/gulangduxiao/archive/2012/06/18/2553862.html
本文深入探讨了ASP.NET中`customErrors`配置的使用,对比了`ResponseRedirect`与`ResponseRewrite`两种跳转方式在处理404错误时的不同表现,并通过实例展示了如何在error.aspx页面中正确设置状态码为404,以实现更高效且用户友好的错误页面体验。

5171

被折叠的 条评论
为什么被折叠?



