Jak se dostat na hodnoty postavené, kódovaný ViewState?

hlasů
22

Musím chytit base64 kódované reprezentace ViewState. Je zřejmé, že to nebude k dispozici až poměrně pozdě v požadavku životního cyklu, což je v pořádku.

Například, pokud je výstup stránky obsahuje:

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

Musím způsob, jak na straně serveru k získání hodnoty /wEPDwUJODU0Njc5MD...==

K objasnění, musím tuto hodnotu, je-li stránka je vykreslený, ne na zpětného odeslání. Příklad: Potřebuji znát hodnotu ViewState, který je odeslán na klienta, ne Viewstate mi dostat se zpátky z nich.

Položena 04/08/2008 v 04:59
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
9

Rex, mám podezření, dobré místo, kde začít hledat, je řešení, které stlačí ViewState - jsou grabování Viewstate na serveru dříve, než seslán na klienta a gzipping ji. To je přesně tam, kde chcete být.

Odpovězeno 04/08/2008 v 09:04
zdroj uživatelem

hlasů
3

Viz tento příspěvek na blogu , kde autor popisuje metodu pro potlačení výchozího chování pro generování Viewstate a místo toho ukazuje, jak jej uložit na objekt serveru Session.

ASP.NET 2.0, ViewState je uložen potomek třídy PageStatePersister. Tato třída je abstraktní třída pro ukládání a načítání ViewsState a jsou tam dva realizované potomci této třídy .NET Framework, pojmenovaný HiddenFieldPageStatePersister a SessionPageStatePersister. Ve výchozím nastavení je HiddenFieldPageStatePersister používá k uložení / načtení ViewState informace, ale můžeme snadno dostat SessionPageStatePersister pracovat a uložit Viewstate v objektu Session.

I když jsem se otestovat své kód, to vypadá, že ukazuje přesně to, co chcete: způsob, jak získat přístup k Viewstate kódu přitom na serveru, před zpětného vystavení.

Odpovězeno 04/08/2008 v 10:04
zdroj uživatelem

hlasů
2

Povolil jsem kompresi na základě podobných předmětů do výše zveřejněny. Klíčem k přístupu k Viewstate před aplikace odešle bylo potlačení této metody;

protected override void SavePageStateToPersistenceMedium(object viewState)

Můžete volat základní metody v rámci tohoto ovládání a přidejte jakékoliv další logika budete potřebovat zvládnout ViewState.

Odpovězeno 05/08/2008 v 11:07
zdroj uživatelem

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