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

ASP.NET
asp+文件上传增强实例
ASP.NET学习手记:验证用户表单输入
关于Microsoft.NET Beta1与Visual Studio.NET Alpha不兼容
asp+ 操作Cookie 方法大全
asp+ 现在已经被官方正式更名为 asp.net
在ASP+ 中我们如何使用 Class 而不是组件
asp+ 如何跨站抓取 页面
在 ASp+ 中的一些可能会用到的 小函数
列出asp+中所有request 的属性和数值
妙用asp+的global.asax
一个asp+ 版本的 Active Server Explorer
asp+中的session 的使用和原理() 不需要cookie也可以使用session
asp.net 的菜单制作(asp.net 的菜单application)
如何在asp+ 中使用自定义的pagelet
如何使用asp+ 动态创建页面元素
用DataGrid分页
给上次的DataGrid分页增加些功能!
asp+ 利用数据绑定来处理XML文件
两种没有使用绑定的 数据显示
asp+中的hash表操作

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 151 ::
收藏到网摘: 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);
}
使用这种方法,也可以把页面生成的内容拿出来生成静态页面使用。