ASP.NET View State è una potente funzionalità di ASP.NET che fornisce un meccanismo di gestione dello stato lato client. Aiuta a preservare la pagina e controllare i valori tra viaggi di andata e ritorno completi per le richieste dei clienti. Ciò offre una capacità di programmazione completa dello stato su un protocollo senza stato come HTTP.
ASP.NET View State viene memorizzato in un campo nascosto nella pagina come una stringa Base64 codificata, come parte di ogni risposta inviata al client, e viene anche restituito al server dal client come parte di un postback.
<input id = "__VIEWSTATE"
type = "hidden"
name = "__VIEWSTATE"
value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
2…=="/>
Sebbene molto utile, ASP.NET View State viene fornito con alcuni problemi che è necessario comprendere e risolvere. Sono discussi di seguito.
Un modo per risolvere ASP.NET View State problemi è memorizzando l'effettivo ASP.NET View State sul server Web e inviando un token (o ID) univoco al suo posto al browser in modo che il browser possa inviare questo token al server Web la prossima volta. Il server web utilizza quindi questo token per trovare quello giusto ASP.NET View State nel suo negozio. Di seguito è riportato un esempio di un token utilizzato al posto di ASP.NET View State.
<input type = "hidden"
name = "__VIEWSTATE"
id = "__VIEWSTATE"
value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />
Sebbene il ASP.NET View State può essere archiviato sul server Web, non è l'ideale quando l'applicazione ASP.NET è in esecuzione in una Web farm con bilanciamento del carico poiché la successiva richiesta HTTP potrebbe arrivare a un altro server Web. Pertanto, è necessario memorizzare il ASP.NET View State in un negozio condiviso accessibile da tutti i server web.
Il posto migliore per conservare ASP.NET View State sul server è in a cache distribuita. In questo modo, non solo puoi avere un negozio comune per tutti i server web, ma hai anche un estremamente negozio in-memory veloce e scalabile rispetto al database di SQL Server o ad altre opzioni di archiviazione.
NCache è una cache distribuita estremamente veloce e scalabile per .NET/.NET Core, Java e Node.js. Ti consente anche di archiviare ASP.NET View State per risolvere i problemi sopra descritti.
Da configurare ASP.NET View State devi installare il AspNet.ViewState.NCache Pacchetto NuGet come prerequisito. Allora è necessario configurare il file App_browser con NCache Collegare gli adattatori di pagina e configurare il file web.config nell'applicazione per registrare la sezione di configurazione per Visualizza stato e specificare le impostazioni per la sezione di configurazione registrata. Fare riferimento al NCache ASP.NET View State docs per la configurazione passo passo.
Se la stessa cache viene utilizzata per la memorizzazione nella cache dello stato di visualizzazione e altri dati, puoi farlo recuperare i dati dello stato di visualizzazione utilizzando NC_ASP.net_viewstate_data tagga come:
Hashtable allViewStateData = cache.GetByTag(new Tag("NC_ASP.net_viewstate_data"));
Ottieni i seguenti vantaggi memorizzando nella cache il tuo ASP.NET View State in NCache.
NCache fornisce un ricco set di funzionalità per la memorizzazione nella cache e la gestione ASP.NET View State. Di seguito è riportato un elenco di loro.
Come hai visto NCache ti consente di memorizzare nella cache ASP.NET View State sul server per ottimizzare le prestazioni di ASP.NET. Inoltre, NCache ti offre un ricco set di funzionalità per la gestione del tuo ASP.NET View State più efficientemente nella cache. Ciò consente di sviluppare applicazioni complesse e utilizzare queste funzionalità per gestire una varietà di scenari.