ViewState не является обязательным, но полезно. Что такое ViewState - это все изменения, которые происходят в элементе управления на стороне сервера. Таким образом, если вы назначаете текст метке и хотите, чтобы этот текст сохранялся без необходимости переназначения его при каждой обратной передаче, вы захотите сохранить это. Другой пример, когда я всегда оставляю ViewState включенным, это что-то привязанное к данным.
Тем не менее, бывают моменты, когда полезно отключить ViewState по той же причине. Например, единственное место, где я всегда выключаю ViewState, - это метка СООБЩЕНИЯ. Таким образом, когда мне нужно распечатать сообщение для пользователя (которое должно появиться только один раз, а затем исчезнуть), я просто добавляю текст на ярлык и затем забываю об этом. Во время следующего PostBack метка автоматически вернется к тексту, найденному в объявлении ASPX для этого элемента управления (в данном случае пустой строке).
Теперь обратите внимание, что это не имеет ничего общего с коллекцией форм, значения которой публикуются в IIS во время PostBack. Коллекция форм отправляет значения, которые пользователь вводит в элементы формы (текстовые поля, флажки, раскрывающиеся списки и т. Д.). Эти .NET будут заполнены в соответствующем месте - и это происходит ПОСЛЕ ViewState был обработан.
Таким образом, если вы отправите текстовое поле с фразой «привет там» клиенту, пользователь изменит его на «Увидимся», а затем отправит форму, что будет иметь текстовое поле к моменту запуска события Page_Load текстовое поле с надписью "Увидимся" в атрибуте TEXT.