IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#][2.0] Comment supprimer définitivement le ViewState ?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut [C#][2.0] Comment supprimer définitivement le ViewState ?
    Bonjour,

    Est il possible de supprimer totalement le viewstate (pas seulement le désactiver), qu'il n'apparaisse plus du tout dans le HTML généré et les autres champs caché en prime :
    __VIEWSTATE
    __EVENTTARGET
    __EVENTARGUMENT

    Merci

    L.

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut Lolo James Bond,

    tu connais cette propriete : Page.EnableViewState, propriété ?

    Tu peux meme l'utiliser dans ton fichier de config.

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut
    Bonjour bonjour

    Certe j'ai déjà désactivé le viewstate dans la config :
    <pages enableViewStateMac="false" enableViewState="false" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" />

    Mais le champ caché est qd même généré en html...

    Donc il faut faire autre chose en plus

    ++
    L.

  4. #4
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Dans ce cas, j'ai fait ma petite recherche

    et on parle de surcharger quelque methodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    protected override void SavePageStateToPersistenceMedium(
     
    object viewState)
     
    {
     
    }
     
    protected override object LoadPageStateFromPersistenceMedium()
     
    {
     
       return null;
     
    }
    Essai pour voir

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut
    Salut,

    Merci, j'avais trouvé aussi à force de chercher...

    mais pour aller plus loin, ta technique vide les champs cachés mais ne le supprime pas. Il faut aussi surcharger la method prerender :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            System.IO.StringWriter stringWriter = new System.IO.StringWriter();
            HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
            base.Render(htmlWriter);
            string html = stringWriter.ToString();
            int StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\"");
            if (StartPoint >= 0)
            {
                int EndPoint = html.IndexOf("/>", StartPoint) + 2;
                string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint);
                html = html.Remove(StartPoint, EndPoint - StartPoint);
            }
            StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__EVENTARGUMENT\"");
            if (StartPoint >= 0)
            {
                int EndPoint = html.IndexOf("/>", StartPoint) + 2;
                string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint);
                html = html.Remove(StartPoint, EndPoint - StartPoint);
            }
            StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__EVENTTARGET\"");
            if (StartPoint >= 0)
            {
                int EndPoint = html.IndexOf("/>", StartPoint) + 2;
                string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint);
                html = html.Remove(StartPoint, EndPoint - StartPoint);
            }
            writer.Write(html);
        }
    Voili voila !!

    Merci encore,

    L.

    (PS : plus de viewstate, plus de postback, bientot plus de framework... Je commence à faire du .net comme du php, lol)

  6. #6
    Invité de passage
    Inscrit en
    Février 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 1
    Par défaut ça cause un problème de redirection
    Bonjour !

    Je travail sur un site qui contient un webform pour le login et le pwd qui (default.aspx) qui fait une redirection vers une autre page apres identification, et je surcharge la methode Render dans le .cs de cette page.

    le surcharge de la methode marche (suppression du viewstate), mais quand je valide le login & pwd jai plus de redirection.

    Avez vous une solution ?

    Merci d'avance..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 14h30
  2. Comment faire pour supprimer définitivement un enregistrement dans un fichier
    Par gryffondor8392 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/02/2011, 19h12
  3. Réponses: 15
    Dernier message: 02/12/2010, 16h03
  4. Comment supprimer définitivement un paquet cassé ?
    Par petitclem dans le forum Distributions
    Réponses: 4
    Dernier message: 29/05/2008, 11h31
  5. Comment supprimer 'mots recherchés'?
    Par bucky dans le forum Windows XP
    Réponses: 3
    Dernier message: 04/12/2003, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo