Ladezustand konnte nicht geladen werden. Der Kontrollbaum, in den der Viewstate geladen wird

8

Ich erhalte folgende Fehlermeldung nach einem HTTP POST auf einem ASP.NET-Formular, das in einem UserControl gehostet wird:

  

Ladezustand nicht laden. Der Kontrollbaum, in den der Viewstate geladen wird, muss mit dem Kontrollbaum übereinstimmen, der beim Speichern der Viewstate während der vorherigen Anfrage verwendet wurde. Wenn Sie beispielsweise Steuerelemente dynamisch hinzufügen, müssen die während eines Postbacks hinzugefügten Steuerelemente dem Typ und der Position der Steuerelemente entsprechen, die während der ursprünglichen Anforderung hinzugefügt wurden.

Hier finden Sie weitere Informationen:

  • Ich verwende .NET 4.5 RC
  • Es ist eine Umbraco 4.7-basierte Website
  • Auf meiner lokalen Dev-Maschine funktioniert das Formular perfekt
  • Dieser Fehler tritt nur auf dem Staging-Server auf, der .NET 4.5 (nur), MSSQL 2012 Express, IIS 7.5, Windows 7 hat (ich weiß, es ist noch kein richtiger Server, vielleicht eines Tages ...)
  • Der Server ist nicht Teil einer Webfarm (oder eines Gartens, der nicht wichtig sein sollte)
  • Das Benutzersteuerelement macht Steuerelemente dynamisch

Ich habe alle aktuellen Service Packs angewendet. Mir sind jetzt die Ideen ausgegangen! Ich habe es sogar neu gestartet und auch ein richual über den Server mit einem Song und einem speziellen Tanz ohne Erfolg durchgeführt.

Danke für jegliche Hilfe oder Ideen!

    
krisdyson 03.08.2012, 12:44
quelle

10 Antworten

1

OK, also lautet die Antwort wörtlich: "Richten Sie einen neuen Server mit der gleichen Software wie die letzte ein und versuchen Sie es erneut", und es funktioniert jetzt.

    
krisdyson 03.08.2012, 15:41
quelle
18

Was wichtig ist, wenn Sie Steuerelemente dynamisch hinzufügen, ist, auf welchem ​​Ereignis Sie sie hinzufügen.

Wenn Sie nach dem Laden Ereignisse hinzugefügt haben, die nach dem Laden auftreten, sind sie Teil des Ansichtsstatus, den Sie an den Client senden.

Sie müssen diese Steuerelemente erneut hinzufügen, bevor LoadViewState aufgerufen wird.

Wenn Sie in Fällen auftreten, in denen die Entscheidung, welche Steuerelemente hinzugefügt werden sollen, selbst in ViewState oder dem Wert eines Steuerelements gespeichert wird, dann merken Sie sich diese Daten noch bevor ViewState geladen ist in Request.Params

Lesen Sie den asp.net-Seitenlebenszyklus

    
nunespascal 03.08.2012 12:52
quelle
16

Ich habe gerade EnableViewState="false" zu meinem Seitenplatzhalter hinzugefügt und es ist weg. Hoffe, es funktioniert auch für dich.

    
Hooman 17.04.2013 06:02
quelle
3

Dieser Fehler tritt hauptsächlich während des Ansichtszustands auf: Von einer Vorlage zu einer anderen Vorlage, wie im Fall einer Elementvorlage, einer Elementvorlage, in Steuerelementen wie Formularansicht, Listenansichten, Detailansicht, Rasteransicht in ASP .net (alle Frameworks) );

Beim Wechseln von den Steuerzuständen sagen Item Template ---> Edit Template Das Folgende würde sich ändern.

1) Die Steuerelemente ändern sich (ihre ID & amp; states)

2) Seine Positionen werden sich ändern.

Während der Transformation der Ansicht, wenn ein Post zurück auftritt, erhalten Sie einen Fehler als

  

Ladezustand nicht laden. Der Kontrollbaum, in dem der Viewstate ist   geladen werden ....

Wenn Sie ein separates Steuerelement für Datenbindungen wie (button, link_button_Image_button Ereignisse) verwenden, erhalten Sie diesen Fehler gemeldet! ​​

Um diesen Fehler zu vermeiden & gt; & gt; & gt; Sobald der Status von einer Vorlage zu einer anderen innerhalb der Methode wechselt, rufen Sie die Datenquellenbindung auf (Rufen Sie nicht während des Klicks oder bei Post-Back-Ereignissen auf).

    
Jax Bikeio 15.03.2014 07:21
quelle
0

Ich füge Attribut "name" mit demselben Wert wie ID hinzu, dann ist dieses Problem verschwunden.

%Vor%     
David 17.09.2014 14:34
quelle
0

Überprüfen Sie, ob Sie die Bindungsmethode des Steuerelements direkt in Ihrem Seitenladeereignis haben. Dies kann dieses Problem verursachen.

    
SubqueryCrunch 19.11.2015 08:08
quelle
0

Sie können einen neuen PlaceHolder pro UserControls hinzufügen

ODER

Sie können enableviewstate=false für das Steuerelement festlegen, wenn Sie viewstate

nicht benötigen     
Omid Farvid 18.01.2016 12:17
quelle
0

In meinem Fall hatte ich eine Rasteransicht mit (OnPageIndexChanging) -Ereignis und wenn ich auf eine Seite klicke, passiert nichts, bis ich zweimal darauf klicke!

Ich habe die Datenquelle aktualisiert, bevor ich den neuen Seitenindex eingestellt habe.

  

Das habe ich falsch gemacht

%Vor%
  

Das ist der richtige Weg

%Vor%     
iYazee6 12.06.2016 08:08
quelle
0

Ich hatte das gleiche Problem. Dieses Problem trat auf Clientseite auf, trat jedoch in meinem lokalen System nicht auf. Nach stundenlangem googeln hatte ich EnableViewState="false" in meine aspx-Seite geschrieben, die alle dynamischen Steuerelemente enthält. Dann entfernte ich alle Viewstate-Variablen und stattdessen erstellte ich einige versteckte Textfelder in der aspx-Seite und akzeptierte DB-Werte in sie in Code hinter und benutzte sie in meinem Code. Es hat dann mein Problem gelöst. Aber trotzdem konnte ich nicht herausfinden, was genau das Problem war.

    
user6785638 02.09.2016 01:39
quelle
0

Dies kann passieren, wenn Sie SaveViewState in Ihrem Steuerelement überschreiben, aber nicht LoadViewState überschreiben.

    
David Kemp 05.10.2016 12:18
quelle