2009-03-20 23 views
5

Mam stronę, która ma naprawdę ogromny stan widoku (> 300 KB). ...Tak, wiem. Zmniejszyłem tę anomalię do jednej kontrolki użytkownika, ale mam problem z określeniem, co dokładnie tamta kontrola wprowadza.

Nadpisałem SavePageStateToPersistenceMedium na stronie, ale nie jestem świetny w pracy z obiektem przekazanym do widoku. Mogę go przekazać do jakiejś funkcji rekursywnej, która wydrukowałaby wszystko, co jest w obiekcie?

Próbowałem używać swobodnie dostępnych dekoderów stanu widoku, ale żaden nie zadziałał. Zawsze otrzymuję błędy podczas próby deserializacji stanu wyświetlania.

Właściwie szukam tutaj fragmentu kodu.

Dzięki
Mark

Dzięki za sugestię traceing, zwł. rzecz trace.axd. Ale to tylko mówi mi, jak duże są kontrolki, nie mówi mi, co jest w stanie oglądania. Chcę móc zobaczyć, czy istnieją obiekty, które błędnie serializuję do stanu wyświetlania.Jaki jest dobry sposób na określenie, co jest w moim widoku?

+0

Jaką to kontrolę? –

+0

Ta kontrolka umożliwia tworzenie dynamicznych kryteriów wyszukiwania w celu odpytywania bazy danych. (Nie wiem, czy to była odpowiedź, której szukałeś) – MStodd

Odpowiedz

1

Zwykłem używać trace.axd. Wyświetla listę wszystkich żądań i zrzuca zawartość stanu wyświetlania. Musisz włączyć śledzenie w web.config. Jeśli masz dużo próśb, będziesz chciał zaktualizować rozmiar pamięci podręcznej do wartości większej niż 10.

0

Odnośnie problemu z dekoderami stanu widoku może być zaszyfrowana data. Sprawdź ten post z komentarzami/linkami na nim: http://www.testingreflections.com/node/view/3424.

Aktualizacja: wyłącz go całkowicie na elemencie strony w pliku web.config:

<pages ... viewStateEncryptionMode="Never" ... /> 

Zobacz sekcja widok stanu w tym msdn doc How To: Configure MachineKey in ASP.NET 2.0

+0

Usunąłem ustawienie 'machineKey' z mojego pliku web.config, ale nadal otrzymuję komunikat "Wystąpił błąd podczas dekodowania łańcucha ViewState: Serializowane dane są nieprawidłowe. " w moim dekoderze. – MStodd

+0

@MStodd dodał aktualizację z dodatkowymi informacjami, sprawdź, czy nie została całkowicie zaszyfrowana. – eglasius

0

Chciałbym tylko dodać nazwiska = "true "do dyrektywy strona na komputerze lokalnym. Sekcja drzewa kontrolnego pokazuje rozmiar widoku każdego kontrolka.

1

Fritz Onion's ViewState Decoder jest tym, czego potrzebujesz!

+0

Chciałbym, żeby to zadziałało, ale nadal otrzymuję komunikat "Wystąpił błąd podczas dekodowania łańcucha ViewState: Serializowane dane są nieprawidłowe." w moim dekoderze. Dzieje się tak nawet po usunięciu ustawienia 'machineKey' z pliku web.config. – MStodd

+1

Właśnie wypróbowałem v2.2 na tej dacie, pracował wspaniale! –