2012-05-02 16 views

Respuesta

16

Cuando ViewState en su página se vuelve muy grande, puede ser un problema ya que algunos servidores de seguridad y servidores proxy evitarán el acceso a páginas que contengan enormes tamaños de ViewState. Para este propósito ASP.NET introduce el mecanismo de fragmentación ViewState. Así que ASP.NET permite dividir el campo oculto único de ViewState en varios utilizando la propiedad MaxPageStateFieldLength en la sección web.config.

Cuando la propiedad MaxPageStateFieldLength se establece en un número positivo, el estado de vista enviado al navegador del cliente se divide en varios campos ocultos.

Establecer la propiedad MaxPageStateFieldLength en un número negativo (el valor predeterminado) indica que el campo de estado de vista no se debe separar en fragmentos. Establecer MaxPageStateFieldLength en un número pequeño puede dar como resultado un bajo rendimiento. ViewState

la muestra antes:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"value="/wEPDwUKLTk2Njk3OTQxNg9kFgICAw9kFgICCQ88KwANAGQYAQUJR3Jp 
ZFZpZXcxD2dk4sjERFfnDXV/hMFGAL10HQUnZbk=" /> 

Entonces encuentra en web.config: ViewState

<pages maxPageStateFieldLength="40"> 

muestra después:

<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=" /> 

espero que le ayude!

+1

buena explicación, gracias – Sujit

+1

El campo oculto EVENTVALIDATION también puede volverse grande. ¿Es posible cortar esto también? –

+0

tenga en cuenta que el elemento se encuentra dentro del elemento en web.config. – woohoo

4

De What's New in ASP.NET State Management - MSDN

Si la cantidad de datos de estado de vista se hace muy grande, de estado de vista CHUNKING dividirá automáticamente los datos en trozos y poner los datos en múltiples campos de forma oculta.

¿Por qué necesitamos Viewstate Chunking?

He aquí un extracto del ViewState Overivew - MSDN

Otra consideración importante es que si la cantidad de datos en un campo oculto se hace grande, algunos servidores proxy y cortafuegos impedirán el acceso a la página que los contiene. Debido a que la cantidad máxima puede variar con diferentes implementaciones de firewall y proxy, los grandes campos ocultos pueden causar problemas esporádicos. Para ayudar a evitar este problema, si cantidad de datos almacenados en la propiedad ViewState excede el valor especificado en la propiedad MaxPageStateFieldLength de la página, la página divide el estado de la vista en varios campos ocultos para reducir el tamaño de cada campo individual debajo del tamaño que los firewalls rechazan

+0

@Downvoter ¿Me importa? – Habib