Mantenere il ViewState

E' possibile salvare tutto il codice attraverso il ViewState degli oggetti nella Web Form.

Il ViewState

Quando un form è processato (inviato al server) in ASP 3.0, tutti i valori inseriti, nei campi di testo, nelle checkbox, nella textarea ecc..., vengono svuotati. Si supponga che viene inviato un form con molte informazioni inserite ed il server ci rimanda indietro la pagina a causa di un errore in fase di compilazione. Si dovrebbe riscrivere tutto; riempire ancora una volta i campi e reinviare il form... Questo vuol dire che il sito non mantiene il ViewState con ogni singolo utente.

Quando, invece, un form è processato in ASP.NET, il form stesso riappare nella finestra del browser con tutti i valori inseriti. Come mai? Questo accade perchè ASP.NET mantiene il ViewState. Il ViewState indica lo "status" della pagina quando viene inviata al server. Lo status è definito attraverso un campo nascosto che si trova in ogni pagina attraverso il controllo: <form id="Form1" runat="server">

Il sorgente è simile al seguente codice:

<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />

...codice...

</form>

Il mantenimento del ViewState è settato di default nella Web Form di ASP.NET. Se non lo si vuole mantenere, basta includere la direttiva di pagina <%@ Page EnableViewState="false" %> nella parte superiore della pagina oppure aggiungendolo per ogni controllo.

Pagina di esempio con il ViewState in azione.