======================================================
注:本文源代码点此下载
======================================================
评论
2259537
2011-10-19 13:17
楼主威武
回复 引用 查看
2011-10-19 14:42
是不是噢,晚上试试~~~
回复 引用 查看
2011-10-19 19:38
新手学习了(⊙o⊙)…
回复 引用 查看
2011-10-19 20:10
楼主,我刚才试了下好像没用,请问你那个替换写对了吗?还有后面替换的时候都是char,前面定义的却是string.
等。。
回复 引用 查看
2011-10-19 20:39
楼主,行不行啊,只要建立一个global.asax,然后在里面写那个事件就可以了???就这一点代码,,,,你确定?????
请详细讲解下。。。。。。
回复 引用 查看
#6楼[楼主]
2011-10-19 22:25
@lee_goophy
@丁宗银
单击web应用右键,选择 添加-》新建项,在“添加项”对话框中的左侧选择“web”,右侧选择“全局应用程序类”,单击“添加”按钮来添加global.asax,然后在global.asax.cs 中 添加 application_beginrequest 事件(把上面的代码复制过去就可了)。最后,运行web应用,就可以用http://localhost:1234/webform1.html 来代替,http://localhost:1234/webform1.aspx 访问页面了。
回复 引用 查看
2011-10-20 10:18
楼主,我试了下,.aspx不能直接转换成html啊
回复 引用 查看
#8楼[楼主]
2011-10-20 10:55
@敢为天下鲜
不是把aspx转成html, 只是可以在浏览器的地址栏里如入http://localhost:1234/webform1.html 来访问http://localhost:1234/webform1.aspx页面,虽然浏览器的地址栏显示的http://localhost:1234/webform1.html 但实际上访问的还是.aspx页面。只是个假象,并没有把aspx页面,转成静态的html页面。
回复 引用 查看
2011-10-20 16:15
lz,这个是可以的,可以详细讲下具体实现过程吗?
回复 引用 查看
#10楼[楼主]
2011-10-20 17:02
@张韬
1)对网站http://localhost/1234的每次请求,都会触发global.asax 的 application_beginrequest事件。
2)在该事件中使用request.url.pathandquery获取请求的url信息,并判断是否为.html
3)如果是请求的是.html, 就通过httpcontext.current.rewritepath,将请求rewrite到对应的.aspx文件上,就相当于用户直接访问的.aspx页面一样。
用户感觉自己在访问.html页面,实际上在application_beginrequest事件中,自动rewrite到.aspx页面上了,这样便达到了“aspx页面伪装成html”的效果。
回复 引用 查看
2011-10-20 20:31
lz不行哎,我得global.asax是这样写得
我重新生成后, 运行http://localhost:1607/test/default.html
无法找到资源,运行http://localhost:1607/test/default.aspx
是可以的!
求解!!!
回复 引用 查看
#12楼[楼主]
2011-10-20 21:54
@丁宗银
应该是没有触发application_beginrequest事件。
我的global.asax 和 global.asax.cs是这样的,你参考一下:
global.asax
global.asax.cs
using system;
using system.collections;
using system.configuration;
using system.data;
using system.web;
using system.web.security;
using system.web.sessionstate;
namespace testapp1
{
public class global : system.web.httpapplication
{
protected void application_beginrequest(object sender, eventargs e)
{
string pathandquery = request.url.pathandquery.tolower();
if (pathandquery.indexof(".html") > -1)
{
pathandquery = "~/" + pathandquery.replace(".html", ".aspx");
httpcontext.current.rewritepath(pathandquery);
}
}
}
}
回复 引用 查看
2011-10-21 11:18
lz,这个好像不行吧,你只是application_beginrequest里面把请求的url做个判断,如果有.html就把.html替换成.aspx,那么url就变成
以.aspx做结尾的超链接,然后重定位这个后面的url,那就无法找到资源!
回复 引用 查看
2011-10-21 22:16
@大豆男生
global.asax.cs是哪里来得???怎么我建立就一个global.asax 这个,其他的什么都没有哎!
回复 引用 查看
#15楼[楼主]
2011-10-22 08:46
@丁宗银
你用的是website吧,重新建立一个web application试试
回复 引用 查看
2011-10-22 09:53
这样就行了!谢谢lz分享!
回复 引用 查看
2011-12-02 15:20
可是有个问题,像aspnetpager这种分页控件就用不了
回复 引用 查看
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
ASP.NET页面伪装成HTML的实现方法
本文详细介绍了如何在ASP.NET应用中通过全局应用程序类(global.asax)实现将.aspx页面伪装为.html页面,包括具体实现过程和注意事项。
402

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



