Напомним, однако, что некоторые поведения, ожидаемые большинством разработчиков веб-форм ASP.NET, не будут работать без ViewState. Цель ViewState - создать иллюзию того, что различные свойства страниц и элементов управления сохраняются от одного запроса к другому. ViewState содержит не все свойства элемента управления, только те, которые были изменены. Идея состоит в том, что ViewState сохраняет эти свойства такими, какими они были на момент последнего отображения формы.
Один хороший пример - это событие SelectedIndexChanged
в раскрывающемся списке (событие, для которого не установлена автопостбэк). Это работает, потому что ViewState сохраняет предыдущий индекс, а форма публикует текущий индекс, а элемент управления сравнивает их, чтобы узнать, что выбранный индекс изменился. Вот когда это вызывает событие SelectedIndexChanged
. Без ViewState это событие не сработает. То же самое для TextChanged
событий и т. Д.
В отсутствие ситуации GET (с которой я никогда не сталкивался), большая проблема с ViewState - использовать его там, где он не нужен. Элементу управления сеткой не нужно сохранять предыдущие значения всех элементов управления во всех его строках, поэтому не включайте ViewState для него.