È possibile disabilitare ViewState in ASP .NET?
-
28-10-2019 - |
Domanda
Sto utilizzando controlli lato server di terze parti sul mio sito web (Telerik RadControls per ASP .NET).Il controllo del menu ha una struttura complessa che sta gonfiando la dimensione del viewstate influenzando i tempi di caricamento.Non sono a conoscenza dei dettagli di viewstate tranne che viene utilizzato dal server web per tenere traccia dei valori di controllo.
Poiché la maggior parte delle pagine del mio sito web sono di sola visualizzazione, è possibile disabilitare lo stato di visualizzazione in cui l'input dell'utente non viene preso?Tutti gli elementi dinamici vengono comunque rigenerati al caricamento della pagina.
Soluzione
Se utilizzi asp.net 4, puoi utilizzare la proprietà ViewStateMode
per controllare la generazione di viewstate per i controlli. ViewStateMode
Se non utilizzi asp.net 4, puoi disattivare il viewstate a livello di pagina o di controllo.
<%@ Page Language="C#" EnableViewState="false"%> //disabling viewstate.
http://msdn.microsoft.com / en-us / library / system.web.ui.page.enableviewstate.aspx
Altri suggerimenti
Nella parte superiore della pagina aspx aggiungi il parametro enableViewstate="false" nelle pagine che non ne hanno bisogno.non disabiliterà completamente il viewstate, ma ridurrà seriamente le dimensioni
Non l'ho testato, ma penso sia possibile ..
Nel tuo file Web.config aggiungi invece l'attributo al tag delle pagine, quindi su quelle pagine devi abilitarlo, aggiungi l'attributo con true in alto
System.Web.UI.WebControls.CheckBox checkBox = new System.Web.UI.WebControls.CheckBox();
checkBox.EnableViewState = false;
Esistono diversi modi per disabilitare ViewState.Nel tuo caso, consiglierei di disabilitare il viewstate sul controllo:
<telerik:RadMenu ViewStateMode="Disabled"