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 :

[2.0][C#] Problème de viewstate invalide


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Par défaut [2.0][C#] Problème de viewstate invalide
    Bonjour,

    J'ai un petit problème dont je ne comprends pas la signification.
    J'ai une page aspx, avec des controles dedans gens textbox, linkbutton, ... enfin, ce qu'il y a de plus normal.

    J'ai également un lien qui ouvre une pop up permettant de faire une recherche et quand l'utilisateur a trouvé l'info qu'il désire, il clique sur l'enregistrement voulu.
    Cet action a pour effet de fermer la pop up et de modifier la valeur de 2 champs de ma fenetre principale.
    Ca marchait, et ca marche encore sauf que quand je clique sur un link button de validation de ma fenetre principale, j'ai une erreur que je n'avais pas avant.

    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
    31
    32
    33
    34
    Les informations d'état ne sont pas valides pour cette page et sont peut-être corrompues.
     
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. 
     
    Détails de l'exception: System.Web.HttpException: Les informations d'état ne sont pas valides pour cette page et sont peut-être corrompues.
     
    [FormatException: Longueur non valide pour un tableau de caractères Base 64.]
       System.Convert.FromBase64String(String s) +0
       System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +72
       System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +5
       System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +37
       System.Web.UI.HiddenFieldPageStatePersister.Load() +142
     
    [ViewStateException: Viewstate non valide. 
    	Client IP: 127.0.0.1
    	Port: 
    	User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
    	ViewState: user 1
    	Referer: http://localhost:1309/test/index.aspx
    	Path: /test/index.aspx]
     
    [HttpException (0x80004005): Les informations d'état ne sont pas valides pour cette page et sont peut-être corrompues.]
       System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +119
       System.Web.UI.HiddenFieldPageStatePersister.Load() +241
       System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +80
       System.Web.UI.Page.LoadAllState() +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7999
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +158
       System.Web.UI.Page.ProcessRequest() +85
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +20
       System.Web.UI.Page.ProcessRequest(HttpContext context) +110
       ASP.index_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\[game]-ligue\7d96e126\cc6b25a7\App_Web_cv4yveox.0.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +317
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +65

    Je ne comprends pas du tout ce qui se passe, sachant que ca marchait avant ... j'ai peut etre fait quelques modifs depuis mais je ne me souviens pas.

    Si je mets un breakpoint au début de mon action click, l'erreur est générée avant meme d'accéder au point d'arret.

    Quelqu'un aurait une petite idée de mon pb ?

    Merci beaucoup,
    Worldofdada

  2. #2
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Par défaut
    Comment mets-tu à jour les 2 champs de la fenêtre principale depuis ta pop-up ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Par défaut
    Je fais du javascript

    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
    function refreshOpener(nomForm, nomChampID, ID, nomChampPseudo, Pseudo)
        {
            if(opener != null && opener.document != null && opener.document.forms[nomForm] != null)
            {
                for(i = 0; i < opener.document.forms[nomForm].elements.length; i++)
                {
                    if(opener.document.forms[nomForm].elements[i].name.indexOf(nomChampID) != -1)
                        opener.document.forms[nomForm].elements[i].value = ID;
     
                    if(opener.document.forms[nomForm].elements[i].name.indexOf(nomChampPseudo) != -1)
                        opener.document.forms[nomForm].elements[i].value = Pseudo;
                }
            }
     
            close();  
        }

  4. #4
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Tu pourrais simplifier ton code énormément si tu n'utilisais pas une popup. Tout d'abord la plupart des internautes ont des popup blockers installés qui empecheront ta fenetre de s'ouvrir. Ensuite la communication entre ta popup et la fenetre mere est délicate et peut facilement engendrer différent problèmes.

    A la place pourquoi ne pas tout simplement afficher une DIV au-dessus de tous les autres éléments et qui contiendrait tout ce que contient ta popup actuelle ? De cette maniere tout se fait dans la meme page, et en plus ca a une apparence beaucoup plus jolie, tu peux meme rajouter un effet d'ombre a ta DIV

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Par défaut
    Je ne connais pas du tout ce systeme mais je suis prenneur si c'est une meilleure solution.

    C'est compliqué a mettre en place ?

    Tu n'aurais pas un tuto sous la main par hasard ?

    Je peux garder mon code dans un aspx ou ascx séparé de la page principale et l'utiliser avec des div ?

  6. #6
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Rien de plus simple a faire....
    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
     
    <div id="popup" style="display:none; z-index:1000; position:absolute; width:400px; height:400px;">
    ici tu mets toute l'interface de ta popup
    </div>
     
    <input type="button" onclick="ShowPopUp();" />
     
     
    <script>
    function ShowPopUp(){
     var myPopup = getElementbyId('popup');
     if (myPopup.style.display == 'none'){
       myPopup.style.display = 'block';
     }else{
        myPopup.style.display = 'none';
     }
    }
    </script>

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/02/2008, 08h57
  2. [VB.NET] ViewState et UserControl
    Par franculo_caoulene dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/04/2005, 15h33
  3. Aide sur la RS 232
    Par Andr0 dans le forum C
    Réponses: 5
    Dernier message: 12/04/2005, 13h58
  4. Proble capture direct Show
    Par liliemumue dans le forum DirectX
    Réponses: 3
    Dernier message: 13/12/2004, 21h04
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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