2010-06-24 6 views
2

Comment désactiver complètement ControlState dans une application Web ASP.NET pour se débarrasser de <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/ACBDEFGH...XYZ=" /> sur chaque page?Comment désactiver ControlState dans ASP.NET?

recherche d'une solution, je ne trouve meaningless answers faire aucune différence entre ControlState et ViewState, ou des réponses saying that« nous ne pouvons pas désactiver l'état de contrôle ». La deuxième hypothèse semble être fausse, puisque les pages StackOverflow n'ont pas de champ caché ViewState.

+3

Stack Overflow est écrit dans ASP.NET MVC pas ASP.NET WebForms, MVC n'utilise pas ViewState, ou ControlStates. WebFroms et MVC sont des frameworks web différents écrits dessus si ASP.NET. – Anthony

Répondre

3

Créer une classe personnalisée

public class PageBase:Page 
    { 

     protected override void SavePageStateToPersistenceMedium(object state) 
     { 
       // Do nothing here 
     }  

    } 

Ensuite, changez votre page d'hériter de PageBase

public partial class Test : PageBase 
    { 
    } 
+0

Ceci éliminera encore les champs cachés, mais ils seront tous complètement vides. il y a certainement un moyen de se débarrasser des éléments cachés aussi, c'est juste ce que je pourrais trouver rapidement –

+0

Merci, c'est bon. Je serais en mesure de se débarrasser de l'étiquette elle-même, mais ce n'est pas grave. –

1

Oui, l'état de contrôle était censé être un mécanisme qui fonctionnerait même si l'état d'affichage était désactivé, c'est donc un dispositif permanent de formulaires Web ASP.NET. MVC n'aurait pas cela car il n'utilise pas le mécanisme viewstate ou control state.

HTH.

+0

Donc la citation * "nous ne pouvons pas désactiver l'état du contrôle" * est complètement vrai pour une application non-MVC? Il n'est pas possible de se débarrasser de 'ControlState' même si je n'utilise pas les contrôles ASP.NET? –

+0

Je n'ai vu nulle part où que ce soit qui dise que vous pouvez, parce que c'était son intention ... vous pouvez essayer le tour de @ Shrage ... –