在 .net 中过滤页面即将输出的所有html,从而改变一定html代码,还是很有需求的,具体的实现方法就是重写 页面的 Render 方法
具体的代码如下:
protected
override
void
Render(HtmlTextWriter writer)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(sw);
base .Render(htmlWriter);
string html = sw.ToString();
html = html.Replace( "1 " , " 2 " );
html = html.Replace( " 3 " , " 4 " );
writer.Write(html);
}
protected void Page_Load( object sender,EventArgs e)
{
}
{
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(sw);
base .Render(htmlWriter);
string html = sw.ToString();
html = html.Replace( "1 " , " 2 " );
html = html.Replace( " 3 " , " 4 " );
writer.Write(html);
}
protected void Page_Load( object sender,EventArgs e)
{
}
虽然代码比较简单,但是能解决的问题还是蛮多的,比较实用:
1. 可以用作缓存,替代 outputcache ,在 Render 中,把页面信息放到 Cache 里面,然后再在Page_Load 里面,从缓存取出来,这样比outputcache 实用,况且可以根据用户信息定制化
2. 过滤页面html
3. .net 过滤页面html输出
4. global.asax 页面输出
5. 过滤 html
6. 替换 html
相关文章:
OutputCache 导致页面下载的解决办法