Quando inviamo una form con ASP .NET questi valori non vengono persi, perchè ASP .NET mantiene il ViewState. Il ViewState indica lo stato della pagina quando viene inviata al server. Lo stato viene definito tramite un campo nascosto nella pagina all’interno del controllo <form runat="server">.
Quando viene generato il codice HTML da inviare al client, inseieme ai tag che formano la pagina viene costruito un campo nascosto chiamato __VIEWSTATE, contenente lo stato della pagina. Questo fa si che non venganon persi i valori menorizzati nel form.
Se vediamo il sorgente dell'HTML generato vederemo qualcosa del genere:
Il viewstate viene mantenuto di default nelle webform ASP.NET, se non lo si vuole mantenere occorre includere la direttiva <%@ Page EnableViewState="false" %> all’inizio della pagina oppure l’attributo EnableViewState="false" ad ogni controllo