
Πρέπει να αρπάξει την κωδικοποίηση base64 αναπαράσταση του ViewState. Προφανώς αυτό δεν θα είναι διαθέσιμο μέχρι αρκετά αργά στον κύκλο ζωής αίτημα, το οποίο είναι εντάξει.


Για παράδειγμα, εάν η έξοδος της σελίδας περιλαμβάνει:



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

```

Χρειάζομαι έναν τρόπο από την πλευρά του διακομιστή για να πάρει την τιμή `/wEPDwUJODU0Njc5MD...==`


Για να διευκρινιστεί, χρειάζομαι αυτή την τιμή όταν η σελίδα έχει καταστεί, όχι για PostBack. π.χ. θα πρέπει να γνωρίζουν την αξία ViewState που έχει *σταλεί* στον πελάτη, όχι το ViewState Παίρνω πίσω από αυτούς.

 
Πώς να πάρει την αξία που χτίστηκε, κωδικοποιημένα ViewState;
=============================================================



Rex, υποψιάζομαι ένα καλό μέρος για να αρχίσετε να ψάχνετε είναι λύσεις που **συμπιέζουν το ViewState** - από όπου και αν αρπάζοντας ViewState στο διακομιστή προτού να σταλεί προς τα κάτω στον πελάτη και χρησιμοποιούντο το gzip αυτό. Αυτό είναι ακριβώς που θέλετε να είναι.


* [Scott Hanselman για ViewState συμπίεσης](http://www.hanselman.com/blog/CommentView,guid,febce059-7e7c-439e-af3d-c53d250b3e9c.aspx) (2005)
* [ViewState συμπίεσης με System.IO.Compression](http://www.bloggingdeveloper.com/post/How-To-Compress-ViewState-in-ASPNET-20-ViewState-Compression-with-SystemIOCompression.aspx) (2007)

 

Δείτε αυτό το [blog post](http://aspguy.wordpress.com/2008/07/09/reducing-the-page-size-by-storing-viewstate-on-server/) , όπου ο συγγραφέας περιγράφει μια μέθοδο για επιτακτικούς την προεπιλεγμένη συμπεριφορά για τη δημιουργία του ViewState και αντί να δείχνει πώς να το αποθηκεύσετε στο αντικείμενο Session διακομιστή.



> 
> Σε ASP.NET 2.0, ViewState αποθηκεύεται από έναν απόγονο του PageStatePersister τάξης. Η κατηγορία αυτή είναι μια αφηρημένη κατηγορία για την αποθήκευση και τη φόρτωση ViewsState και υπάρχουν δύο εφαρμοστεί απόγονοι αυτής της κατηγορίας σε .Net Framework, που ονομάζεται HiddenFieldPageStatePersister και SessionPageStatePersister. Από προεπιλογή HiddenFieldPageStatePersister χρησιμοποιείται για την αποθήκευση / φορτίο ViewState πληροφορίες, αλλά μπορούμε εύκολα να πάρει το SessionPageStatePersister να εργαστούν και να σώσει ViewState στο αντικείμενο Session.
> 
> 
> 


Αν και δεν είχα δοκιμάσει τον κωδικό του, φαίνεται να δείξει ακριβώς τι θέλετε: ένας τρόπος για να αποκτήσετε πρόσβαση στον πηγαίο ViewState ενώ ακόμα στο διακομιστή, πριν postback. 

 

Έχω να ενεργοποιήσετε την συμπίεση μετά από παρόμοια είδη με αυτά που δημοσιεύτηκε παραπάνω. Το κλειδί για την πρόσβαση στο ViewState πριν από την εφαρμογή στέλνει ήταν επιτακτικό αυτή τη μέθοδο?



```
protected override void SavePageStateToPersistenceMedium(object viewState)

```

Μπορείτε να καλέσετε τη μέθοδο βάσης μέσα σε αυτό το παράκαμψης και στη συνέχεια να προσθέσετε ό, τι επιπλέον λογική που χρειάζεστε για να χειριστεί την ViewState.

 