Fehler beim laden der viewstate. Die control-Struktur in die viewstate geladen wird
Ich erhalte die folgende Fehlermeldung, nach der eine HTTP-POST auf einem ASP.NET form, beherbergt ein UserControl:
Fehler beim laden von viewstate. Die control-Struktur in die viewstate geladen wird, muss mit der control-Struktur, die verwendet wurde, zu speichern viewstate bei der vorherigen Anfrage. Zum Beispiel beim hinzufügen von Steuerelementen dynamisch der Steuerelemente Hinzugefügt, während ein post-back muss mit der Art und position der Steuerelemente Hinzugefügt, während die ursprüngliche Anforderung.
Hier ist zusätzliche info:
- Ich laufen .NET 4.5 RC
- Es ist eine Umbraco 4.7 basierende website
- Auf meinem lokalen dev-Maschine, das Formular funktioniert perfekt
- Dieser Fehler tritt nur auf dem staging-server hat .NET 4.5 (nur), MSSQL 2012 Express, IIS 7.5, Windows 7 (ich weiß, es ist nicht ein richtiger server noch, eines Tages vielleicht...)
- Der server nicht Teil einer web-farm (oder im Garten, tho, der sollte irrevelant)
- Der Benutzer die Kontrolle hat render-Steuerelemente dynamisch
Ich habe alle die neuesten service packs.
Ich habe die Ideen ausgegangen, jetzt! Ich habe auch neu gestartet und auch durchgeführt eine richual über den server mit einem Lied und einem Tanz ohne Erfolg.
- dieser blog-Beitrag hat mir geholfen, mit den meisten von viewstate-Probleme weblogs.asp.net/infinitiesloop/archive/2006/08/03/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist wichtig, wenn Sie hinzufügen von Steuerelementen dynamisch auf das Ereignis, das Sie hinzufügen.
Wenn Sie zusätzliche Steuerelemente auf Ereignisse, die auftreten, nach dem laden, werden Sie Teil der viewstate Sie an den client senden.
Müssen Sie die Steuerelemente wieder vor
LoadViewState
genannt wird.Wenn Sie in Fällen, in denen die Entscheidung, welche Steuerelemente hinzuzufügen, ist selbst in der gespeichert
ViewState
oder den Wert eines Steuerelements, dann denken Sie daran, noch bevor dieViewState
geladen wird, diese Daten verfügbar sind, wird inRequest.Params
Finden Sie die asp.net Seite life cycle
Habe ich nur noch
EnableViewState="false"
zu meiner Seite Platzhalter und der Spuk ist vorbei. Hoffe, es funktioniert für u als auch.EnableViewState="False"
des gridview-das problem ist gelöst.Dieser Fehler Tritt vor allem während der View-Zustand Ändern: Von einer Vorlage Zu Einer anderen Vorlage, wie im Falle der Ziffer Vorlage, Element Bearbeiten Template, in Steuerungen, wie der Formularansicht, Listenansicht Detail-Ansicht der Grid-Ansicht in ASP .Netto (alle frameworks);
Beim Ändern von control-Staaten sagen
Item Template ---> Edit Template
die folgenden Elemente wurden verändert
1) Steuert, zu verändern (seine ID & Staaten)
2) Seine Positionen zu ändern.
Während der Transformation, wenn alle post wieder Auftritt, erhalten Sie Fehler wie
wenn Sie mit getrennten Steuerung für das data-binding-like (button,link_button_Image_button Ereignisse), werden diese Fehler gemeldet !
Diesen Fehler zu vermeiden >>> Sobald sich der Zustand ändert sich von einer Vorlage zu einer anderen innerhalb der Methode, die Sie aufrufen, Datenquelle binden ( nicht telefonisch, während Sie auf oder eines der post-backing-events ).
OK, die Antwort ist also wörtlich: "einrichten eines neuen Servers mit allen die gleiche software wie der Letzte, und versuchen Sie es erneut" und es funktioniert jetzt.
Ich add "name" - Attribut mit dem gleichen Wert wie id haben, dann ist dieses problem Weg ist.
Prüfen Sie, ob Sie die binding-Methode des Steuerelements direkt in Ihre Seite ein load-Ereignis. Dies kann die Ursache für dieses problem.
Können Sie neue Platzhalter pro Benutzersteuerelemente
ODER
Können Sie festlegen
enableviewstate=false
auf die Kontrolle , wenn Sie nicht brauchen, viewstateIn meinem Fall hatte ich eine grid-Ansicht mit (OnPageIndexChanging) Ereignis
und wenn ich auf eine Seite klicken, wird nichts passieren, bis ich es auf zweimal!
War ich aktualisieren der Datenquelle vor der Einstellung neue Seite index.
Ich hatte das gleiche Problem. Dieses Problem wurde an den client-Ende, aber es hat nicht auftreten, in meinem lokalen system.
Nach stundenlangem googeln, habe ich geschrieben hatte EnableViewState="false" auf meine table-Tags in der aspx-Seite, die alle dynamisch kontrolliert, und dann entfernte ich alle viewstate-Variablen und statt ich habe einige versteckte Textfelder, die in der aspx-Seite und akzeptiert DB-Werte in die im code hinter und Sie überall in meinem code. Ist es dann mein problem gelöst.
Aber dennoch, ich konnte nicht herausfinden, was genau war das problem.
Dies kann passieren, wenn Sie überschreiben
SaveViewState
zu Steuern, aber nicht übersteuernLoadViewState
.In meinem Fall war ich mit der Manipulation der .Text Eigenschaft eines asp:Literal auf die Seite laden, das war das Problem verursacht. In allen anderen Fällen wird diese nie verursacht mir ein viewstate Fehler, aber in diesem speziellen Fall war ich die änderung der .Text Wert auf ein html-element.
Folgenden den Fehler verursacht:
Konnte ich den Fehler beheben, indem Sie hinzufügen EnableViewState="false" explizit auf die Kontrolle: