View state is the accumulation of a page's or an ASP.NET server control's property values and is sent to the requesting browser in a hidden field.

You can explicitly add StateItem objects to an ASP.NET server control's StateBag object using either the Item property or the Add method. The StateBag then tracks changes to all the items that it stores. Any changes to a StateItem object are reflected in its IsDirty property. These changes are saved by a call to the SaveViewState method during the save view state phase of server control processing, just before the control is rendered to the page. For more information, see ASP.NET Web Server Controls.

The following code example uses the Value and IsDirty properties of the StateItem class to save the state of a simple custom ASP.NET server control class, StateBagSample. When the page has posted to the server, the IsDirty property checks whether the item has been modified. The state values are displayed by accessing the Value property.