Comment obtenir la valeur de construction, ViewState codé?

voix
22

Je dois saisir la représentation base64 du ViewState. Il est évident que ce ne serait pas disponible jusqu'à assez tard dans le cycle de vie de la demande, qui est OK.

Par exemple, si la sortie de la page comprend:

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

Je besoin d'un moyen sur le côté serveur pour obtenir la valeur /wEPDwUJODU0Njc5MD...==

Pour clarifier, j'ai besoin de cette valeur lorsque la page est rendue, pas sur PostBack. par exemple , je dois connaître la valeur ViewState qui est envoyé au client, pas le ViewState Je reviens d'eux.

Créé 04/08/2008 à 04:59
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
9

Rex, je soupçonne un bon endroit pour commencer à chercher des solutions est que compriment le ViewState - ils saisissant ViewState sur le serveur avant qu'il ne soit envoyé vers le client et gzipping il. C'est exactement là où vous voulez être.

Créé 04/08/2008 à 09:04
source utilisateur

voix
3

Voir ce billet de blog où l'auteur décrit une méthode pour des raisons impérieuses le comportement par défaut pour générer le ViewState et montre au contraire comment économiser sur l'objet de la session du serveur.

Dans ASP.NET 2.0, ViewState est enregistré par un descendant de la classe PageStatePersister. Cette classe est une classe abstraite pour la sauvegarde et le chargement ViewsState et il y a deux descendants mis en œuvre de cette classe dans .Net Framework, nommé HiddenFieldPageStatePersister et SessionPageStatePersister. Par défaut HiddenFieldPageStatePersister est utilisé pour enregistrer / charger des informations ViewState, mais nous pouvons facilement obtenir le SessionPageStatePersister pour travailler et enregistrer ViewState dans l'objet de session.

Bien que je n'ai pas testé son code, il semble montrer exactement ce que vous voulez: un moyen d'accéder au code ViewState tout en restant sur le serveur, avant publication.

Créé 04/08/2008 à 10:04
source utilisateur

voix
2

Je charge la compression suivant des articles similaires à ceux affichés ci-dessus. La clé pour accéder au ViewState avant l'application envoie est redéfinissant cette méthode;

protected override void SavePageStateToPersistenceMedium(object viewState)

Vous pouvez appeler la méthode de base dans ce override puis ajouter ce logique supplémentaire dont vous avez besoin pour gérer le ViewState.

Créé 05/08/2008 à 11:07
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more