The ASP.NET View State is a built-in feature that manages client-side state by preserving page and control values between complete round trips for client requests. This gives a state full programming capability over a stateless protocol such as HTTP.
This state is stored in a hidden field on the page as an encoded Base64 string, as part of every response sent to the client. It is returned to the server by the client as part of a post back.
<input id = "__VIEWSTATE"
type = "hidden"
name = "__VIEWSTATE"
value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
2...=="/>
Although, very useful, the ASP.NET View State comes with a few issues that you need to resolve. They are discussed below.
One way you can resolve these ASP.NET View State issues is by storing the actual ASP.NET View State on the web server and sending a unique token (or ID) in its place to the browser. So the browser can send this token back to the web server next time. The web server then uses this token to find the right ASP.NET View State in its store. Below is such an example of a token being used.
<input type = "hidden"
name = "__VIEWSTATE"
id = "__VIEWSTATE"
value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />
Although, the ASP.NET View State can be stored on the web server, it's not ideal when your ASP.NET application is running in a load-balanced web farm since the next HTTP request might go to another web server. Therefore, you must store the ASP.NET View State in a shared store that is accessible from all the web servers.
The best place to store ASP.NET View State on the server is in a distributed cache. This way, not only can you have a common store for all web servers, but you also have an extremely fast and scalable in-memory store as compared to SQL Server database or other storage options.
NCache is an extremely fast and scalable distributed cache for .NET, Java, Python, and Node.js. It also lets you store ASP.NET View State to solve the issues described above.
To configure ASP.NET View State, you need to install the AspNet.ViewState.NCache NuGet package as a prerequisite. Then you need to configure the app_browser file with NCache Plug page adapters. Next, you need to configure the web.config file in your application to register the View State for configuration and specify the settings for the previously registered config section. Refer to the NCache ASP.NET View State docs for step-by-step configuration.
If the same cache is being used for View State caching and other data, you can fetch the View State data by using the NC_ASP.net_viewstate_data tag as:
Hashtable allViewStateData = cache.SearchService.GetByTag(new Tag("NC_ASP.net_viewstate_data"));
You gain the following benefits by caching your ASP.NET View State in NCache.
NCache provides you a rich set of features for caching and managing the ASP.NET View State. Below is a list of them.
As you have seen, NCache allows you to cache ASP.NET View State on the server to optimize your ASP.NET performance. It also provides you with a rich set of features for managing your ASP.NET View State more efficiently in the cache. This enables you to develop complex applications and use these features to handle diverse scenarios.
© Copyright Alachisoft 2002 - . All rights reserved. NCache is a registered trademark of Diyatech Corp.