asp.net поддерживает представление с get - PullRequest
1 голос
/ 11 марта 2011

После перезагрузки страницы я хочу сохранить значения, введенные пользователем при нажатии кнопки submit.

Я беспокоюсь о том, что состояние просмотра может быть громоздким для страниц, как по пропускной способности, так и по времени, когда программа просмотра страниц загружает страницу. Я дешев с моими байтами: p

У меня вопрос, вместо того, чтобы использовать серверные элементы управления, и поэтому у меня есть форма на странице, чтобы получить себе и на aspx положить

<input type="text" id="user_email" name="email" value="<%=Request.Form["email"] %>" />

Это позволяет мне не использовать viewstate. Есть ли потенциальные недостатки в таких действиях? Моя цель всегда - сделать страницу легче и эффективнее, даже если это больше работы.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Это может быть много работы, и это может укусить вас позже, если вы хотите сделать эту работу вокруг.Я бы порекомендовал вам отключить состояние просмотра на странице или на основе управления, в противном случае я думаю, что нет смысла использовать веб-форму ASP.NET, вы можете попробовать вместо этого посмотреть ASP.NET MVC.

0 голосов
/ 17 сентября 2017

Вы можете решить эту проблему, используя 0 байтов данных ViewState, отправленных клиентам без особых усилий и без изменений в существующем коде: Хранение ViewState в файловой системе сервера.

Подробнее об этом здесь: https://msdn.microsoft.com/en-us/library/ms972976.aspx.

Вам не нужно читать все это, прокрутите вниз, пока не дойдете до главы Указание, где сохранить состояние просмотра . Все, что вам нужно сделать, чтобы мы наследовали класс Page, используемый на ваших страницах, переопределить определенные методы, связанные с ViewState, для изменения поведения ViewState. Пример кода есть в ссылке.

Советы

  • Вы должны использовать SSD-хранилище для этого вида ViewState. На сервере Azure диск D: Temp оптимизирован для этого типа использования.

  • Для дальнейшей производительности вы могли бы реализовать механизм кэширования, который преимущественно использует System.Web.Caching вместо SSD. Но запись на SSD возможна только тогда, когда память заполнена, и кэш будет очищен. Подробнее о кешировании читайте здесь: Caching API, Использование объекта Cache : https://msdn.microsoft.com/en-us/library/aa478965.aspx

  • Если вы решите использовать кэширование, вы также должны удалить старый ViewState из кэша всякий раз, когда тот же пользователь публикует в следующий раз. Это значительно снизит потребление памяти и, вероятно, устранит необходимость в записи на SSD в большинстве случаев.

  • Установите разумное количество времени для сохранения ViewState. На большинстве типов страниц достаточно 30 минут - 1 час.

Пожалуйста, спросите меня, хотите ли вы еще примеров. :)

...