Désactiver Adblock

AdBlock bloque du contenu sur le site

ADBlock errore

Comment obtenir la valeur de ViewState construit et codé?

StackOverflow https://stackoverflow.com/questions/1010
 Vérifié

Question

Je dois récupérer la représentation codée en base64 du ViewState. Évidemment, cela ne serait disponible que tardivement dans le cycle de vie de la demande, ce qui est OK.

Par exemple, si le résultat de la page comprend:

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

J'ai besoin d'un moyen côté serveur pour obtenir la valeur "/ wEPDwUJODU0Njc5MD ... =="

Pour clarifier, j'ai besoin de cette valeur lors du rendu de la page, pas sur PostBack. par exemple. J'ai besoin de connaître la valeur ViewState qui est envoyée au client, et non le ViewState que je reçois.

Solution

Rex, je suppose qu'un bon point de départ pour rechercher des solutions qui compressent le ViewState : ils saisissent ViewState sur le serveur avant qu'il ne soit envoyé au client et le gzipper. C'est exactement où vous voulez être.

Autres conseils

Voir ceci article de blog où l'auteur décrit une méthode pour redéfinir le comportement par défaut de la génération de ViewState et indique comment l'enregistrer sur l'objet Session du serveur.

  

Dans ASP.NET 2.0, ViewState est enregistré par   un descendant de PageStatePersister   classe. Cette classe est une classe abstraite   pour enregistrer et charger ViewsState et   il y a deux descendants implémentés   de cette classe dans .Net Framework, nommé   HiddenFieldPageStatePersister et   SessionPageStatePersister. Par défaut   HiddenFieldPageStatePersister est utilisé   enregistrer / charger les informations ViewState,   mais nous pouvons facilement obtenir le   SessionPageStatePersister pour travailler et   enregistrer ViewState dans l'objet Session.

Bien que je n’aie pas testé son code, il semble montrer exactement ce que vous voulez: un moyen d’avoir accès au code ViewState tout en restant sur le serveur, avant la publication.

J'ai activé la compression après des articles similaires à ceux publiés ci-dessus. La clé permettant d’accéder à ViewState avant que l’application ne l’envoie envoie surchargeait cette méthode;

protected override void SavePageStateToPersistenceMedium(object viewState)

Vous pouvez appeler la méthode de base dans ce remplacement, puis ajouter la logique supplémentaire nécessaire pour gérer ViewState.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow