当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.net在页面所有内容生成后、输出内容前对页面内容进行操作

ASP.NET
.net基础知识错误注意二十二点知识
用.NET动态创建类的实例讲解
微软发布.NET Framework 3.5 SP1正式版
asp.net教程:HTTP状态码200,301,302
.NET 2.0中Hashtable快速查找的方法
在ASP.Net Ajax中调用WebService
asp.net 和 access 联合开发的分页类
ASP.NET 全局异常处理
用SQL语句完成SQL Server数据库的修复
.net 框架程序设计
ASP.NET结合XML编写计数器
ASP.NET水晶报表实现打印功能
Asp.Net中设计与使用水晶报表
防止ASP.NET按钮多次提交的办法
.NET开发事件处理的步骤
ASP.NET刷新页面的六种方法
Asp.net ajax实现任务提示页面
ASP.NET 2.0中XML数据的处理
ASP.NET中XML数据的处理
Jadu: 将 PHP 编译成 .NET

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 184 ::
收藏到网摘: n/a

以前曾说过用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);
}
使用这种方法,也可以把页面生成的内容拿出来生成静态页面使用。