ASP.NET View State est une fonctionnalité puissante d'ASP.NET qui fournit un mécanisme de gestion d'état côté client. Il aide à préserver les valeurs de page et de contrôle entre les allers-retours complets pour les demandes des clients. Cela donne une capacité de programmation complète d'état sur un protocole sans état tel que HTTP.
ASP.NET View State est stocké dans un champ masqué sur la page sous la forme d'une chaîne Base64 codée, dans le cadre de chaque réponse envoyée au client, et est également renvoyé au serveur par le client dans le cadre d'une publication.
<input id = "__VIEWSTATE"
type = "hidden"
name = "__VIEWSTATE"
value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
2…=="/>
Bien que très utile, ASP.NET View State vient avec quelques problèmes que vous devez comprendre et résoudre. Ils sont discutés ci-dessous.
Une façon de résoudre ASP.NET View State problèmes est de stocker le réel ASP.NET View State sur le serveur Web et en envoyant un jeton (ou ID) unique à sa place au navigateur afin que le navigateur puisse renvoyer ce jeton au serveur Web la prochaine fois. Le serveur Web utilise ensuite ce jeton pour trouver le bon ASP.NET View State dans son magasin. Vous trouverez ci-dessous un exemple d'un jeton utilisé à la place de ASP.NET View State.
<input type = "hidden"
name = "__VIEWSTATE"
id = "__VIEWSTATE"
value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />
Bien que ASP.NET View State peut être stocké sur le serveur Web, ce n'est pas idéal lorsque votre application ASP.NET s'exécute dans une batterie de serveurs Web à charge équilibrée, car la prochaine requête HTTP peut être envoyée à un autre serveur Web. Par conséquent, vous devez stocker le ASP.NET View State dans une boutique mutualisée accessible depuis tous les serveurs web.
Le meilleur endroit pour stocker ASP.NET View State sur le serveur est dans un cache distribué. De cette façon, non seulement vous pouvez disposer d'un magasin commun pour tous les serveurs Web, mais vous disposez également d'un magasin en mémoire rapide et évolutif par rapport à la base de données SQL Server ou à d'autres options de stockage.
NCache est un cache distribué extrêmement rapide et évolutif pour .NET/.NET Core, Java et Node.js. Il vous permet également de stocker ASP.NET View State pour résoudre les problèmes décrits ci-dessus.
Configurer ASP.NET View State vous devez installer le AspNet.ViewState.NCache Package NuGet comme pré-requis. Ensuite, vous devez configurer le fichier App_browser avec NCache Branchez les adaptateurs de page et configurer le fichier web.config dans votre application pour enregistrer la section de configuration pour l'état d'affichage et spécifier les paramètres de la section de configuration enregistrée. Se référer au NCache ASP.NET View State docs pour une configuration pas à pas.
Si le même cache est utilisé pour la mise en cache de l'état d'affichage et d'autres données, vous pouvez récupérer les données d'état d'affichage en utilisant NC_ASP.net_viewstate_data étiqueter comme :
Hashtable allViewStateData = cache.GetByTag(new Tag("NC_ASP.net_viewstate_data"));
Vous bénéficiez des avantages suivants en mettant en cache votre ASP.NET View State in NCache.
NCache vous offre un riche ensemble de fonctionnalités pour la mise en cache et la gestion ASP.NET View State. Voici une liste d'entre eux.
Comme vous l'avez vu, NCache permet de mettre en cache ASP.NET View State sur le serveur pour optimiser vos performances ASP.NET. En outre, NCache vous offre un riche ensemble de fonctionnalités pour gérer votre ASP.NET View State plus efficacement dans le cache. Cela vous permet de développer des applications complexes et d'utiliser ces fonctionnalités pour gérer une variété de scénarios.