Как отключить viewstate для определенного элемента управления? - PullRequest
1 голос
/ 21 января 2011
<asp:TextBox ID="TextBox1" runat="server" EnableViewState="false" />
<asp:Button ID="Button1" runat="server" Text="Button" />

Я установил для свойства EnableViewState значение false, но когда я нажимаю кнопку, значение в текстовом поле сохраняется после обратной передачи.Почему значение сохраняется?

Ответы [ 3 ]

3 голосов
/ 21 января 2011

Взгляните на Общие сведения о состоянии просмотра ASP.NET . В жизненном цикле страницы есть этап загрузки данных поста, который будет заполнять ваши контрольные значения из данных формы.

Просмотр состояния может быть очень запутанным, в частности, зачем вам это нужно, если элементы управления заполнены данными формы на обратной почте. Состояние Role of View по той же ссылке выше объясняет, почему это полезно.

Подводя итог: View State не требуется для пользовательского ввода. Просмотр состояния используется для хранения программных изменений в состоянии страниц, которые происходят. Простой пример - когда нажимается кнопка «не отправлять», а обработчик изменяет текст метки. Это изменение должно быть сохранено в состоянии просмотра, чтобы оно сохранялось в дополнительных постах.

0 голосов
/ 21 января 2011

Для элементов управления, которые принимают ввод, может быть восстановлено их состояние с использованием данных, отправленных на сервер. Их не нужно хранить в ViewState. В каком-то смысле это не старые значения, это НОВЫЕ значения, представленные пользователем (несмотря на то, что он, возможно, не изменил их).

0 голосов
/ 21 января 2011

Объяснение

Самый простой способ - каждый раз устанавливать свойство Text в String.Empty.

...