HiddenFieldPageStatePersister Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Stores ASP.NET page view state on the Web client in a hidden HTML element.

Namespace:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)


public class HiddenFieldPageStatePersister : PageStatePersister


Initializes a new instance of the HiddenFieldPageStatePersister class.


Gets or sets an object that represents the data that controls contained by the current Page object use to persist across HTTP requests to the Web server. (Inherited from PageStatePersister.)


Gets or sets the Page object that the view state persistence mechanism is created for.(Inherited from PageStatePersister.)


Gets an IStateFormatter object that is used to serialize and deserialize the state information contained in the ViewState and ControlState properties during calls to the Save and Load methods.(Inherited from PageStatePersister.)


Gets or sets an object that represents the data that controls contained by the current Page object use to persist across HTTP requests to the Web server. (Inherited from PageStatePersister.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Deserializes and loads persisted state information from an HttpRequest object when a Page object initializes its control hierarchy.(Overrides PageStatePersister.Load().)


Creates a shallow copy of the current Object.(Inherited from Object.)


Serializes any object state contained in the ViewState or ControlState property and writes the state to the response stream.(Overrides PageStatePersister.Save().)


Returns a string that represents the current object.(Inherited from Object.)

ASP.NET pages can store Page state between the inherently stateless HTTP request and response required to process and serve any Web page. This state is called "view state". The default mechanism used to store view state for a page and its controls is in one or more <hidden> HTML fields included in the page that is served to a client from a Web server. The Page class can use the HiddenFieldPageStatePersister class to do this work. HiddenFieldPageStatePersister implements the Save and Load methods of the PageStatePersister class so that the Page can store state in a <hidden> HTML element named "__VIEWSTATE" on a Web client. When the client requests the same page from the Web server (a postback), the <hidden> element is parsed and converted to state information by ASP.NET.

If the Page instance that is requested has an associated PageAdapter class, it retrieves the PageStatePersister object from this adapter using the GetStatePersister method. Adapters can override the GetStatePersister method to return a PageStatePersister object that stores page and control state in some way that a specific client supports. For example, the SessionPageStatePersister class stores page and controls' state on the Web server, instead of the client, to decrease the amount of information that must be sent and stored on a client that has potentially limited memory and bandwidth.

The maximum size of the "_VIEWSTATE" <hidden> HTML element can be set through the MaxPageStateFieldLength property or through the MaxPageStateFieldLength configuration setting. When this value is set and the length of the "_VIEWSTATE" element would exceed the maximum length, the content is divided into multiple "_VIEWSTATE" elements.

The following code example demonstrates how to bind a ListBox control to data in a database with a SqlDataSource control.

<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
    <form id="form1" runat="server">
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT LastName FROM Employees">



When the example page is viewed, any view state is stored by the HiddenFieldPageStatePersister class in a <hidden> HTML element named "__VIEWSTATE".

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <form name="_ctl0" method="post" action="sample.aspx" id="_ctl0">

      <input type="hidden" name="__VIEWSTATE" value="MgAwADkANgAwADkAOQA3ADgAMQD/AQ8QBQoxMTU2NDc1NjE0EGRkFgICAQ9kFgICAw8PZBAVDQVhc2RhcwhCdWNoYW5hbghDYWxsYWhhbgdEYXZvbGlvCURvZHN3b3J0aAZGdWxsZXIES2luZwhLcmF3YXJpawlMZXZlcmxpbmcETWFyeQdQZWFjb2NrBlN1eWFtYQx0ZXN0IHJlZnJlc2gVDQVhc2RhcwhCdWNoYW5hbghDYWxsYWhhbgdEYXZvbGlvCURvZHN3b3J0aAZGdWxsZXIES2luZwhLcmF3YXJpawlMZXZlcmxpbmcETWFyeQdQZWFjb2NrBlN1eWFtYQx0ZXN0IHJlZnJlc2gUKgMNZ2dnZ2dnZ2dnZ2dnZ2RkZPdhi6U7jBPqVZbj0W8AYFSJ6oiq" />

      <select size="4" name="ListBox1" id="ListBox1">    
        <option value="Buchanan">Buchanan</option>
        <option value="Callahan">Callahan</option>
        <option value="Davolio">Davolio</option>
        <option value="Dodsworth">Dodsworth</option>
        <option value="Fuller">Fuller</option>
        <option value="King">King</option>
        <option value="Leverling">Leverling</option>
        <option value="Suyama">Suyama</option>


.NET Framework
Available since 2.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top