设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 137|回复: 1
打印 上一主题 下一主题

ASP.net在页面所有内容生成后、输出内容前对页面内容进行操作

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-16 19:55:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
以前曾说过用HttpModule来在Response前更改Cookie,今天遇到Asp.net自做主张,把我辛苦转换的汉字?这样的表现形式,又转成汉字,别说是Asp.net的Web控件,就是Html控件Ranat=server都会被它强行转换成汉字输出。
如果把页面内容一行行用Response写出来,那样太累,而且容易出错。所以最好的办法是在Asp.net的生成动作完成之后,再进行一次转换,这样Asp.net就拿你没有办法了。
Asp.net的所有生成动作在Render方法中完成,那么我们就对Render方法进行手术:
protected override void Render(HtmlTextWriter writer)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htmlw = new HtmlTextWriter(sw);
//把页面生成内容拿出来
base.Render(htmlw);
htmlw.Flush();
htmlw.Close();
string pageContent = sw.ToString();

//对内容进行修改
pageContent = KillTheBugAndShit(pageContent);
Response.Write(pageContent);
//base.Render (writer);
}
使用这种方法,也可以把页面生成的内容拿出来生成静态页面使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 08:21 , Processed in 0.101224 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表