Finally, another kind of state that is managed by ASP.NET is server control state. Developers who used classic ASP to create data-driven applications had to figure out how to maintain the state of the various HTML form elements on their ASP pages from one page to the next, or even between submissions of a page that submits to itself. HTML provides no built-in mechanism for maintaining the state of individual form elements, so developers were left to come up with their own methods of maintaining and restoring this information.
ASP.NET provides a solution to this challenge with the server control architecture. All ASP.NET server controls are capable of maintaining their own state through a mechanism known as ViewState. ViewState is maintained on a page- by-page basis as a hidden form field that contains all of the state information for all of the form elements on that page.