把aspx页面伪装成html

ASP.NET页面伪装成HTML的实现方法
本文详细介绍了如何在ASP.NET应用中通过全局应用程序类(global.asax)实现将.aspx页面伪装为.html页面,包括具体实现过程和注意事项。

======================================================
注:本文源代码点此下载
======================================================

评论

2259537

#1楼

2011-10-19 13:17

不入流程序员

楼主威武

回复 引用 查看

#2楼

2011-10-19 14:42

一涵

是不是噢,晚上试试~~~

回复 引用 查看

#3楼

2011-10-19 19:38

lee_goophy

新手学习了(⊙o⊙)…

回复 引用 查看

#4楼

2011-10-19 20:10

lee_goophy

楼主,我刚才试了下好像没用,请问你那个替换写对了吗?还有后面替换的时候都是char,前面定义的却是string.

等。。

回复 引用 查看

#5楼

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 访问页面了。

回复 引用 查看

#7楼

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页面。

回复 引用 查看

#9楼

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”的效果。

回复 引用 查看

#11楼

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);

}

}

}

}

回复 引用 查看

#13楼

2011-10-21 11:18

冲锋-_-!蜗牛

lz,这个好像不行吧,你只是application_beginrequest里面把请求的url做个判断,如果有.html就把.html替换成.aspx,那么url就变成

以.aspx做结尾的超链接,然后重定位这个后面的url,那就无法找到资源!

回复 引用 查看

#14楼

2011-10-21 22:16

丁宗银

@大豆男生

global.asax.cs是哪里来得???怎么我建立就一个global.asax 这个,其他的什么都没有哎!

回复 引用 查看

#15楼[楼主]

2011-10-22 08:46

大豆男生

@丁宗银

你用的是website吧,重新建立一个web application试试

回复 引用 查看

#16楼

2011-10-22 09:53

丁宗银

这样就行了!谢谢lz分享!

回复 引用 查看

#17楼

2011-12-02 15:20

jacksondesign

可是有个问题,像aspnetpager这种分页控件就用不了

回复 引用 查看


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值