c# - Wie erhalte ich den Wert von erstelltem, codiertem ViewState?

Translate

Ich muss die base64-codierte Darstellung des ViewState abrufen. Offensichtlich wäre dies erst ziemlich spät im Anforderungslebenszyklus verfügbar, was in Ordnung ist.

Zum Beispiel, wenn die Ausgabe der Seite Folgendes enthält:

<input type="hidden" name="__VIEWSTATE" 
  id="__VIEWSTATE" value="/wEPDwUJODU0Njc5MD...==" />

Ich brauche einen Weg auf der Serverseite, um den Wert zu erhalten"/wEPDwUJODU0Njc5MD...=="

Zur Verdeutlichung benötige ich diesen Wert beim Rendern der Seite, nicht bei PostBack. zB muss ich den ViewState-Wert kennen, der gerade istgeschicktan den Client, nicht an den ViewState, den ich von ihnen zurück bekomme.

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Rex, ich vermute, ein guter Ort, um zu suchen, sind Lösungen, dieKomprimieren Sie den ViewState- Sie greifen auf ViewState auf dem Server zu, bevor es an den Client gesendet und komprimiert wird. Genau dort möchten Sie sein.

Quelle
Translate

Sieh dir das anBlogeintragDabei beschreibt der Autor eine Methode zum Überschreiben des Standardverhaltens zum Generieren des ViewState und zeigt stattdessen, wie es auf dem Server-Sitzungsobjekt gespeichert wird.

In ASP.NET 2.0 wird ViewState von einem Nachkommen der PageStatePersister-Klasse gespeichert. Diese Klasse ist eine abstrakte Klasse zum Speichern und Laden von ViewsState. In .Net Framework sind zwei Nachkommen dieser Klasse implementiert: HiddenFieldPageStatePersister und SessionPageStatePersister. Standardmäßig wird HiddenFieldPageStatePersister zum Speichern / Laden von ViewState-Informationen verwendet, aber wir können den SessionPageStatePersister problemlos zum Funktionieren bringen und ViewState im Sitzungsobjekt speichern.

Obwohl ich seinen Code nicht getestet habe, scheint er genau zu zeigen, was Sie wollen: eine Möglichkeit, vor dem Postback auf ViewState-Code zuzugreifen, während er sich noch auf dem Server befindet.

Quelle
Translate

Ich habe die Komprimierung nach ähnlichen Artikeln wie den oben genannten aktiviert. Der Schlüssel zum Zugriff auf den ViewState, bevor die Anwendung ihn sendet, hat diese Methode überschrieben.

protected override void SavePageStateToPersistenceMedium(object viewState)

Sie können die Basismethode innerhalb dieser Überschreibung aufrufen und dann die zusätzliche Logik hinzufügen, die Sie für die Verarbeitung des ViewState benötigen.

Quelle