asp.net动态输出404

 本文地址:http://www.cnblogs.com/dengxinglin/archive/2013/05/10/3071522.html

我们有时候会根据参数来变化而显示输出404页面,如aa.aspx?id=xxx,你可能通过url来重写之后的地址是xxx.html了,

当xxx=1是数据库存在id为1的时候我正常输出记录来。

假如当xxx=5,数据库这条记录被删除了。我们为了5.html能够告诉用户和搜索引擎这个页面是不存在的,我们需要返回404页面了。

只需要通过下面代码

 Response.StatusCode =404;
                Response.Status = "404 Not Found";
                Response.End();

到底是不是404我们来检测试下

上面的代码是完全可以输出404页面了的,不过你这里是要自定义输出的内容,可以如下来:

 Response.StatusCode =404;
                Response.Status = "404 Not Found";
 Response.Write("<html xmlns=\"http://www.w3.org/1999/xhtml/" ><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title>页面没有找到</title><meta http-equiv=\"refresh\" CONTENT=\"0; url=/\"></head><body><div>" +
    "<div>这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,这样页面没有找到啊,</div></div></body></html>");
                Response.End();

如果自定义输出内容了,那就需要输出的html字符最好大于521B,ie下面会对小于512B的替换成ie自己的页面了。



 

不过好像看有的童鞋说,Response.Redirect("404.html")不是一样会显示一个404页面里吗,会改变当前的url地址,而Response.Redirect是重定向的。

我通过Server.Transfer不是一样实现了404页面吗??

Response.StatusCode = 404;
Response.Status = "404 Not Found";
Server.Transfer("404.html");//Response.Transfer方法(404.html在服务器不存在)

用上面是可以输出一个404的页面了,而且url地址也没有改变。那是不是就是返回404了呢??

我们查看它返回的状态码如下图

 

发现了吧,返回的302状态码。

 

用Response.Redirect或者Server.Transfer都是重定向的,不要来用做404输出!!

 

 

posted on   划风  阅读(2755)  评论(2编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

导航

< 2013年5月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示