2008-11-14 6 views
6

Comment puis-je me débarrasser de:Comment se débarrasser de View State complètement dans .NET

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..."/> 

Complètement!

+0

Il est évident que vous voulez vous débarrasser de viewstate tout à fait, mais, si vous Je voulais simplement l'optimiser, plutôt que de l'éteindre, vous pourriez trouver ma réponse à une autre question utile: http://stackoverflow.com/a/3865762/205245 –

Répondre

11

Vous devez ajouter le EnableViewState = "false" à la directive @Page dans le fichier Default.aspx.

<%@ Page Language="C#" AutoEventWireup="true" 
Codebehind="Default.aspx.cs" Inherits="Sample._Default" 
EnableViewState="false" %> 

Ensuite, ajoutez le code suivant au fichier Default.aspx.cs. Cela supprime le champ masqué du code HTML généré.

#region Disable ViewState 
    protected override void SavePageStateToPersistenceMedium(object state) 
    { 
    } 
    protected override object LoadPageStateFromPersistenceMedium() 
    { 
     return null; 
    } 
    #endregion 
+0

Comme indiqué ci-dessous, il est plus facile de désactiver l'état d'affichage au niveau web.config (ou même au niveau de machine.config). Monsignor

+0

Je me demande pourquoi cela ne marche pas pour moi. Toujours avoir ViewState dans les requêtes GET. – ajeh

+0

Je l'ai fait et viewstate est toujours là. Tout élément qui a 'runat = server' a aussi désactivé viewstate, viewstate est désactivé dans' web.config', mais la fichue chose toujours là! – ajeh

4

Je pense que vous pouvez le désactiver dans machine.config:

< Pages enableViewState = "false" />

Cela devrait désactiver ViewState pour toutes les pages. Au niveau du contrôle, EnableViewState = "faux"

5

Au niveau de la page, EnableViewState = false dans la directive Page.

Au niveau applicaiton ajouter ceci à .config, < pages enableViewState = "false">

+0

Mis en œuvre tout cela et ayant toujours ViewState. – ajeh

1
#region Disable ViewState 
protected override void SavePageStateToPersistenceMedium(object state) 
{ 
} 
protected override object LoadPageStateFromPersistenceMedium() 
{ 
    return null; 
} 
#endregion 

Ceci est awesome.However, juste pour que chacun sache qu'il est encore rendu un vide viewstate champ caché

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" /> 
+1

Je serais mieux si vous avez ajouté ceci comme commentaire, pas comme réponse. – Monsignor

Questions connexes