2012-05-02 15 views

risposta

16

Quando il ViewState nella tua pagina diventa molto grande può essere un problema dato che alcuni firewall e proxy impediscono l'accesso a pagine contenenti enormi dimensioni di ViewState. A tale scopo, ASP.NET introduce il meccanismo di Chunking di ViewState. Pertanto, ASP.NET consente di suddividere il singolo campo nascosto di ViewState in più utilizzando la proprietà MaxPageStateFieldLength nella sezione web.config.

Quando la proprietà MaxPageStateFieldLength è impostata su un numero positivo, lo stato di visualizzazione inviato al browser client viene suddiviso in più campi nascosti.

L'impostazione della proprietà MaxPageStateFieldLength su un numero negativo (il valore predefinito) indica che il campo dello stato di visualizzazione non deve essere separato in blocchi. L'impostazione di MaxPageStateFieldLength su un numero ridotto può comportare prestazioni scadenti. ViewState

campione prima:

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

Poi trova nel web.config:

<pages maxPageStateFieldLength="40"> 

Esempio ViewState Dopo:

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

Spero che ti aiuta!

+1

bella spiegazione, grazie – Sujit

+1

Il campo nascosto EVENTVALIDATION può anche diventare grande. È possibile anche questo pezzo? –

+0

si noti che l'elemento si trova all'interno dell'elemento in web.config. – woohoo

4

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

Se la quantità di dati sullo stato di visualizzazione diventa troppo grande, sullo stato di visualizzazione suddivisione in blocchi divide automaticamente i dati in blocchi e mettere i dati in più campi in forma nascosta.

Perché abbiamo bisogno di Viewstate Chunking?

Ecco un exerpt da ViewState Overivew - MSDN

Un'altra considerazione importante è che se la quantità di dati in un campo nascosto diventa grande, alcuni proxy e firewall impedirà l'accesso alla pagina che li contiene. Poiché l'importo massimo consentito per varia in base alle diverse implementazioni di firewall e proxy, i campi grandi nascosti possono causare problemi sporadici. Per evitare questo problema, se la quantità di dati archiviata nella proprietà ViewState supera nella proprietà MaxPageStateFieldLength della pagina, la pagina divide lo stato di visualizzazione in più campi nascosti per ridurre la dimensione di ogni singolo campo al di sotto della dimensione che i firewall rifiutano.

+0

@Downvoter cura di commentare? – Habib