Difference between revisions of "State Management in ASP.NET"

From JholJhapata
(Created page with "As we all know, '''HTTP''' or '''HTTPS''' is stateless protocol. It just cleans up or we can say removes all the resources/references that were serving a specific request in t...")
 
Line 10: Line 10:
 
== Client-side | Techniques ==
 
== Client-side | Techniques ==
 
=== View State ===
 
=== View State ===
 +
View State is the method to preserve the Value of the Page and Controls between round trips. It is a Page-Level State Management technique. View State is turned on by default and normally serializes the data in every control on the page regardless of whether it is actually used during a post-back.Please keep in mind though, that while cookies and sessions can be accessed from all your pages on your website, ViewState values are not carried between pages.<br><br>
 +
 +
'''Points of ViewState:'''
 +
* ViewState does not hold the controls, rather it holds the values of the form controls and their corresponding ID's that would otherwise be lost due to a post back because they do not post with the form. 
 +
* ViewState is not used to hold session data or to transmit data between pages.
 +
* ViewState does not recreate the dynamically created controls of a page.
 +
* It does not restore the values to the controls after a post back operation.
 +
* ViewState for a control is disabled, still the value would be retained after a post back of the page occurs, for input controls like TextBox or DropDownList.
 +
 
 +
So, ViewState represents the state of a page when it was last processed on the web server.  It holds the values of a control that has been dynamically changed.
 +
 +
'''How does ViewState work?'''
 +
 +
When the page is first created all controls are serialized to the ViewState, which is rendered as a hidden form field named __ViewState.  This hidden field corresponds to the server side object known as the ViewState.  ViewState for a page is stored as key-value pairs using the System.Web.UI.StateBag object.  When a post back occurs, the page de-serializes the ViewState and recreates all controls.  The ViewState for the controls in a page is stored as base 64 encoded strings in name - value pairs.  When a page is reloaded two methods pertaining to ViewState are called, namely the LoadViewState method and SaveViewState method.  The following is the content of the __ViewState hidden field as generated for a page in my system.
 +
 +
[[File:ViewState.png|ViewState]]
 +
 +
'''ViewState can be enabled and disabled in any of the following ways:'''
 +
 +
* Control Level
 +
* Page Level
 +
* Application Level
 +
* Machine Level
 +
 
=== Hidden field ===
 
=== Hidden field ===
 
=== Cookies ===
 
=== Cookies ===

Revision as of 13:30, 23 January 2020

As we all know, HTTP or HTTPS is stateless protocol. It just cleans up or we can say removes all the resources/references that were serving a specific request in the past.

Stateless means, whenever we visit a website, our browser communicates with the respective server depending on our requested functionality or the request. In this case HTTP/HTTPs doesn't remember what website or URL we visited, or in other words we can say it doesn't hold the state of a previous website that we visited before closing our browser, that is called stateless.

So our browsers are stateless.

State Management Types

State Management Techniques

Client-side | Techniques

View State

View State is the method to preserve the Value of the Page and Controls between round trips. It is a Page-Level State Management technique. View State is turned on by default and normally serializes the data in every control on the page regardless of whether it is actually used during a post-back.Please keep in mind though, that while cookies and sessions can be accessed from all your pages on your website, ViewState values are not carried between pages.

Points of ViewState:

  • ViewState does not hold the controls, rather it holds the values of the form controls and their corresponding ID's that would otherwise be lost due to a post back because they do not post with the form.
  • ViewState is not used to hold session data or to transmit data between pages.
  • ViewState does not recreate the dynamically created controls of a page.
  • It does not restore the values to the controls after a post back operation.
  • ViewState for a control is disabled, still the value would be retained after a post back of the page occurs, for input controls like TextBox or DropDownList.

So, ViewState represents the state of a page when it was last processed on the web server. It holds the values of a control that has been dynamically changed.

How does ViewState work?

When the page is first created all controls are serialized to the ViewState, which is rendered as a hidden form field named __ViewState. This hidden field corresponds to the server side object known as the ViewState. ViewState for a page is stored as key-value pairs using the System.Web.UI.StateBag object. When a post back occurs, the page de-serializes the ViewState and recreates all controls. The ViewState for the controls in a page is stored as base 64 encoded strings in name - value pairs. When a page is reloaded two methods pertaining to ViewState are called, namely the LoadViewState method and SaveViewState method. The following is the content of the __ViewState hidden field as generated for a page in my system.

ViewState

ViewState can be enabled and disabled in any of the following ways:

  • Control Level
  • Page Level
  • Application Level
  • Machine Level

Hidden field

Cookies

Control State

Query Strings

Server-side | Technique

Session State

InProc

OutProc

Application State