Bagaimana untuk mendapatkan nilai yang dibangun, dikodekan ViewState?

Saya perlu untuk mengambil base64-encoded representasi dari ViewState. Jelas, ini tidak akan tersedia sampai cukup terlambat dalam siklus hidup, yang OK.

Misalnya, jika output dari halaman meliputi:

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

Saya perlu cara pada sisi server untuk mendapatkan nilai "/wEPDwUJODU0Njc5MD...=="

Untuk memperjelas, saya membutuhkan nilai ini ketika halaman yang diberikan, bukan pada PostBack. misalnya saya perlu tahu ViewState nilai yang sedang kirim untuk klien, tidak ViewState I'm kembali dari mereka.

Larutan

Rex, saya menduga tempat yang baik untuk mulai mencari solusi yang kompres ViewState - mereka're meraih ViewState pada server sebelum's dikirimkan ke klien dan gzipping itu. Yang's tepat di mana anda ingin menjadi.

Komentar (0)

Melihat ini blog post di mana penulis menjelaskan metode untuk meng-override default perilaku untuk menghasilkan ViewState dan bukan menunjukkan bagaimana menyimpannya di server Sesi objek.

Di ASP.NET 2.0, ViewState diselamatkan oleh keturunan PageStatePersister kelas. Kelas ini merupakan kelas abstrak untuk menyimpan dan memuat ViewsState dan ada dua dilaksanakan keturunan kelas ini di .Net Framework, bernama HiddenFieldPageStatePersister dan SessionPageStatePersister. Secara default HiddenFieldPageStatePersister digunakan untuk menyimpan/memuat informasi ViewState, tetapi kita dapat dengan mudah mendapatkan SessionPageStatePersister untuk bekerja dan save ViewState di Sesi objek.

Meskipun saya tidak menguji kode nya, tampaknya untuk menunjukkan dengan tepat apa yang anda inginkan: cara untuk mendapatkan akses ke ViewState kode sementara masih pada server, sebelum postback.

Komentar (0)

Saya mengaktifkan kompresi berikut artikel serupa untuk mereka yang diposting di atas. Kunci untuk mengakses ViewState sebelum mengirimkan aplikasi itu override metode ini;

protected override void SavePageStateToPersistenceMedium(object viewState)

Anda dapat menghubungi dasar metode ini menimpa dan kemudian tambahkan dengan logika tambahan yang anda butuhkan untuk menangani kondisi tampilan.

Komentar (0)