ViewState 的使用,大家可以说是又爱又恨,它其中一个特性就是保存页面的状态,对于只是展示的页面,我们可以直接在页面文件中使用 EnableViewState="false" 来将其屏蔽,但是很多时候,我们不得不使用它,可是它产生的页面冗长的html代码有让我们很头疼,下面介绍一种ViewState压缩机制。主要是通过重写 PageStatePersister 来实现。
1、开发一个ViewStateFactory,根据不同的配置,修改存储方式。
2、在Web.config的AppSetting里加上
3、覆盖页面的PageStatePersister,这里你可以开发一个BasePage,在基类里覆盖,所有的页面集成这个页面
经测试,ViewState代码从9页Word文档的大小减小为以下一行
<input type="hidden" name="_VIEWSTATE_KEY" id="_VIEWSTATE_KEY" value="VIEWSTATE_li3v0l30keovxerbolgvqcyl_/bbs/69548.html_634365820127654509" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" />