视图状态的程序分块
隐藏视图状态的大小默认是没有限制的,如果有时候页面的隐藏字段大于某个特定的尺寸,一些代理服务器和防火墙很可能会拒绝让这个页面通过,可以通过视图状态分块来解决这个问题,它会自动把视图状态分成多个字段,保证隐藏字段不会超出设置的阀值。
设置页面隐藏视图的最大尺寸
<configuration>
<system.web>
<pages maxPageStateFieldLength="1024"/> //以字节为单位
</system.web>
</configuration>
<system.web>
<pages maxPageStateFieldLength="1024"/> //以字节为单位
</system.web>
</configuration>
当页面产生的视图状态比设定值大,就会自动创建若干个隐藏字段
自动分块的视图状态
<input type="hidden" name="__VIEWSTATEFIELDCOUNT" id="__VIEWSTATEFIELDCOUNT" value="5" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="。。。" />
<input type="hidden" name="__VIEWSTATE1" id="__VIEWSTATE1" value="。。。" />
<input type="hidden" name="__VIEWSTATE2" id="__VIEWSTATE1" value="。。。" />
<input type="hidden" name="__VIEWSTATE3" id="__VIEWSTATE1" value="。。。" />
<input type="hidden" name="__VIEWSTATE4" id="__VIEWSTATE1" value="。。。" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="。。。" />
<input type="hidden" name="__VIEWSTATE1" id="__VIEWSTATE1" value="。。。" />
<input type="hidden" name="__VIEWSTATE2" id="__VIEWSTATE1" value="。。。" />
<input type="hidden" name="__VIEWSTATE3" id="__VIEWSTATE1" value="。。。" />
<input type="hidden" name="__VIEWSTATE4" id="__VIEWSTATE1" value="。。。" />
视图状态的分块不能提高性能,反而会增加一点序列化的负载,设计时,应该尽量在使徒状态中保存尽量少的信息。