kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
Rex M
Rex M
Вопрос

Как получить значение построенного, закодированного ViewState?

Мне нужно получить base64-кодированное представление ViewState. Очевидно, что это будет недоступно до довольно поздней стадии жизненного цикла запроса, что нормально.

Например, если вывод страницы включает:

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

Мне нужен способ на стороне сервера получить значение "/wEPDwUJODU0Njc5MD...==".

Чтобы уточнить, мне нужно это значение во время рендеринга страницы, а не при PostBack. Например, мне нужно знать значение ViewState, которое отправляется клиенту, а не ViewState, которое я получаю обратно от него.

26 2008-08-04T03:59:42+00:00 3
Ijas Ameenudeen
Ijas Ameenudeen
Редактировал вопрос 20-го января 2019 в 1:46
Программирование
asp.net
c#
Решение / Ответ
Jeff Atwood
Jeff Atwood
4-го августа 2008 в 8:04
2008-08-04T08:04:41+00:00
Дополнительно
Источник
Редактировать
#8407204

Рекс, я подозреваю, что хорошим местом для начала поиска являются решения, которые сжимают ViewState - они захватывают ViewState на сервере до того, как он будет отправлен клиенту, и сжимают его. Это именно то место, где вы хотите быть.

  • Scott Hanselman on ViewState Compression (2005)
  • ViewState Compression with System.IO.Compression (2007)
12
0
Yaakov Ellis
Yaakov Ellis
4-го августа 2008 в 9:04
2008-08-04T09:04:17+00:00
Дополнительно
Источник
Редактировать
#8407206

См. эту запись в блоге, где автор описывает метод переопределения поведения по умолчанию для генерации ViewState и вместо этого показывает, как сохранить его в объекте Session сервера.

В ASP.NET 2.0 ViewState сохраняется в объекте Session. потомком PageStatePersister класс. Этот класс является абстрактным классом для сохранения и загрузки ViewsState и существует два реализованных потомка этого класса в .Net Framework, названные HiddenFieldPageStatePersister и SessionPageStatePersister. По умолчанию HiddenFieldPageStatePersister используется &gt. для сохранения/загрузки информации ViewState, но мы можем легко получить SessionPageStatePersister для работы и сохранять ViewState в объекте Session.

Хотя я не тестировал его код, кажется, что он показывает именно то, что вы хотите: способ получить доступ к коду ViewState еще на сервере, до постбэка.

4
0
Dave Anderson
Dave Anderson
5-го августа 2008 в 10:07
2008-08-05T10:07:51+00:00
Дополнительно
Источник
Редактировать
#8407207

Я включил компрессию, следуя статьям, похожим на те, что были опубликованы выше. Ключом к доступу к ViewState до того, как приложение отправит его, было переопределение этого метода;

protected override void SavePageStateToPersistenceMedium(object viewState)

Вы можете вызвать базовый метод в этом переопределении, а затем добавить любую дополнительную логику, необходимую для обработки ViewState.

2
0
Похожие сообщества 16
DotNetRuChat
DotNetRuChat
6 652 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
Microsoft Stack Jobs
Microsoft Stack Jobs
2 414 пользователей
Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks
Открыть telegram
С#
С#
2 330 пользователей
Стараемся не флудить. Пишем по делу. Правила: https://t.me/professorweb/430450 Для флуда @svoboda_obsh
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
CODE BLOG / C#
CODE BLOG / C#
1 772 пользователей
Чат для .NET разработчиков и C# программистов. По всем вопросам: @shwanoff Youtube-канал: https://youtube.com/codeblog Основной канал: @codeblog Вконтакте: https://vk.com/codeblog Правила: https://t.me/codeblog_csharp/246972 Вакансии по тегу #work
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией