Почему мое состояние просмотра растет между обратными отправками при использовании динамических данных?
-
21-08-2019 - |
Вопрос
Я пишу довольно сложную веб-форму, используя ASP.NET Динамические данные.Некоторые элементы управления в этой форме публикуются обратно, поскольку между элементами управления существуют зависимости.Я замечаю, что viewstate увеличивается с каждой обратной отправкой, пока примерно через 5 лет не возникнет длительная задержка между процессом рендеринга и фактической загрузкой страницы в веб-браузере.
Это происходит, даже если я ПРОСТО нажимаю переключатель, чтобы вызвать обратную отправку, без ввода каких-либо данных или каких-либо других изменений в форму...
Я проверил более старую версию формы, которая не использует динамические данные, и viewstate вообще не растет...итак, я предполагаю, что в чем-то виноваты элементы управления динамическими данными...
Кто-нибудь еще видел это?Есть ли способ это исправить?
Решение 2
Итак, виновником был RadComboBox от Telerik.Более конкретно, это было отсутствие поддержки динамических данных с использованием RadComboBox.Чтобы быть еще более конкретным:
Обходной путь для использования RadComboBox с DynamicData заключается в том, чтобы иметь выпадающий список с видимым значением false, вызвать PopulateListControl для этого DDL и затем скопировать элементы в RadComboBox.
Это работает нормально, за исключением случаев, когда вы делаете это при каждой обратной отправке...Я предполагаю, что он помещает весь список в Viewstate, когда вы делаете это таким образом, и поскольку я делал это при каждой обратной отправке...состояние просмотра продолжало расти.
Другие советы
Я не знаю прямого ответа на ваш вопрос, но, возможно, один из этих инструментов поможет вам в дальнейшей диагностике:
(1) Инструмент декодирования ViewState от Fritz Onion от Fritz Onion, возможно, сможет помочь вам выяснить, что там происходит.Вы можете найти ViewSate Decoder, указанный на Страница инструментов Pluralsight.Прямая ссылка для скачивания: ViewStateDecoder22.zip.
Снимок экрана Декодера ViewState http://alt.pluralsight.com/images/decoderscreenshot.gif
(2) Еще одним инструментом, на который, возможно, стоит обратить внимание, является ASP.NET Помощник ViewState:
"[...] ASP.NET ViewState Helper разработан, чтобы помочь всем веб-разработчикам, но имеет специфические функции, помогающие ASP.NET разработчикам отлаживать проблемы ViewState .Анализируйте свои веб-страницы в режиме реального времени во время их просмотра с помощью Internet Explorer 6.0 или более поздней версии.[...]"