`
Yarhhome
  • 浏览: 47790 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • Yarhhome: tpsnake 写道大哥,你的帖子没让我折服,你的 头像让我折 ...
    禁止缓存
  • tpsnake: 大哥,你的帖子没让我折服,你的 头像让我折服了
    禁止缓存

禁止页面使用viewstate

阅读更多

1.引入命名空间

using System.IO;
using System.Text.RegularExpressions;

2.重写Page类的Render方法:

    protected override void Render(HtmlTextWriter writer)
    {
        StringWriter sw= new StringWriter();
        base.Render(new HtmlTextWriter(sw));//获取正常输出的html,包含__VIEWSTATE

        string html = sw.ToString();

        html = Regex.Replace(html, @"<div[\s\S]*?__VIEWSTATE[\s\S]*?</div>", "");//过滤__VIEWSTATE
        writer.WriteLine(html.Trim());//输出过滤后的html

    }

只需上面的操作即可将页面中冗余的__VIEWSTATE清除,你可以试试

不过要注意,清除了viewstate后,不影响页面布局,但是页面的许多事件都触发不了了,这也是一般不清除viewstate的原因,慎用。

在生成静态页面的时候用的较多。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics