在asp.net中的ViewState Chunking

Suj*_*jit 11 asp.net viewstate page-lifecycle

我一直听到这个词"Viewstate Chunking".什么是Viewstate Chunking?

它是如何为ASP.NET页面工作的?

小智 16

当页面中的ViewState变得非常大时,可能会出现问题,因为某些防火墙和代理会阻止访问包含巨大ViewState大小的页面.为此,ASP.NET引入了ViewState Chunking机制.因此,ASP.NET允许使用web.config部分中的MaxPageStateFieldLength属性将ViewState的单个隐藏字段拆分为多个.

当MaxPageStateFieldLength属性设置为正数时,发送到客户端浏览器的视图状态将分为多个隐藏字段.

将MaxPageStateFieldLength属性设置为负数(默认值)表示不应将视图状态字段分隔为块.将MaxPageStateFieldLength设置为较小的数字可能会导致性能下降.

示例ViewState之前:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"value="/wEPDwUKLTk2Njk3OTQxNg9kFgICAw9kFgICCQ88KwANAGQYAQUJR3Jp
ZFZpZXcxD2dk4sjERFfnDXV/hMFGAL10HQUnZbk=" />
Run Code Online (Sandbox Code Playgroud)

然后在web.config中设置:

<pages maxPageStateFieldLength="40">
Run Code Online (Sandbox Code Playgroud)

示例ViewState后:

<input type="hidden" name="__VIEWSTATEFIELDCOUNT" id="__VIEWSTATEFIELDCOUNT"value="3" />
<input type="hidden" name="__VIEWSTATE"
id="__VIEWSTATE" value="/wEPDwUKLTk2Njk3OTQxNg9kFgICAw9kFgICCQ88" />
<input type="hidden" name="__VIEWSTATE1"
id="__VIEWSTATE1" value="KwANAGQYAQUJR3JpZFZpZXcxD2dk4sjERFfnDXV/" />
<input type="hidden" name="__VIEWSTATE2"
id="__VIEWSTATE2" value="hMFGAL10HQUnZbk=" /> 
Run Code Online (Sandbox Code Playgroud)

希望对你有所帮助!

  • 请注意,&lt;pages&gt;元素位于web.config中的&lt;system.web&gt;元素内。 (2认同)