Frage

Haben Sie eine Seite, die Steuerelemente dynamisch erstellt. Steuerzustand wird aus der Datenbank abgerufen und Kontrollen werden auf Seite auf Postbacks erneut hinzugefügt. Der Benutzer kann Kontrollen durch UI hinzufügen / löschen. Wenn zwei Benutzer auf der gleichen Seite und ein Hinzufügen / Entfernen von Kontrollen der anderen Benutzer beim nächsten Mal Viewstate-Fehler erhalten werden versucht er Steuerzustand zu ändern.

" fehlgeschlagen Ansichtszustand zu laden. Den Steuerbaumes, in dem Ansichtszustand geladen wird, muß den Kontrollbaum entspricht, der verwendet wurde Ansichtszustand während der vorherigen Anfrage zu speichern. Wenn beispielsweise Steuerelemente dynamisch hinzufügen, die Kontrollen während eines hinzugefügt Post-back muß die Art und Position der Kontrollen bei der ersten Anfrage. "

hinzugefügt entsprechen

Das ist, weil, wenn Seite gezogen wird ich eine Reihe von Kontrollen verwenden und ich einen anderen Satz von Kontrollen auf Postbacks bekommen, weil Steuerzustand durch unterschiedliche Benutzer geändert wurde.

verstehe ich den Fehler und warum es passiert, aber ich denke, dass ich hier etwas fehlt bin. Gibt es eine Möglichkeit, eine Seite zu haben, die dynamisch Kontrollen ergänzt und kann gleichzeitige Benutzer behandeln, die den Zustand der Kontrollen modifizieren?

War es hilfreich?

Lösung

Sie müssen den aktuelle Benutzer Zustand von dem Master , oder global, Zustand zu trennen. Beim Postback statt Ihrer Kontrolle Baum des Gebäudes auf der Master-Definition in der Datenbank basiert, laden eine zwischengespeicherte Steuer Baum, der für den aktuellen Benutzer spezifisch ist. Sobald Sie vorbei an dem Viewstate Wiederaufbau erhalten, dann Versöhnungsprozess einzuleiten -., Ob die automatischen oder muss eine andere Benutzeroberfläche laden, damit der Benutzer teilnehmen außerhalb des Rahmens der Frage ist

Der Punkt ist, dass Sie halten müssen „Zweige“ des Masters auf einer Per-User-Basis und verpflichten und in einer kontrollierten Art und Weise zu lesen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top