Как я выключаю состояние отображения окончательно?

Я думаю, что нашел свой ответ. Существует базовый класс DeclContext для многих блоков decls, включая RecordDecl. Этот класс имеет открытые функции-члены для итерации всех decls внутри структуры, взгляните на decls_begin () и decls_end ().

15
задан Jon Winstanley 15 March 2009 в 07:48
поделиться

5 ответов

Можно выключить состояние отображения для целого сайта как это:

    <system.web>
<pages enableViewState="false" />

Тем не менее Вы не должны получать его на URL. ViewState является скрытым полем, которое отправляется на сервер с обратной передачей (который обычно использует сообщение). Это сохраняет состояние средств управления, когда страница была представлена клиенту, отправив его с каждой обратной передачей. Если это работает на приложение, Вы могли бы переключиться для использования сообщения вместо этого (проблемная форма, конечно, использует, добираются), если не смотрят на ответ Jon.

Проверьте эту ссылку для получения дополнительной информации о том, как состояние отображения вписывается в жизненный цикл asp.net: http://msdn.microsoft.com/en-us/library/ms972976.aspx.

35
ответ дан 1 December 2019 в 00:01
поделиться

У меня был подобный вопрос при записи Средства отслеживания Репутации.

Я не знаю, как Вы делаете это глобально кроме только к никогда использованию форма с runat="server" набор, который больше относится к дисциплине, чем установка. В частности, если Вы имеете runat="server" набор на форме, я полагаю, что Вы будете всегда получать параметр состояния отображения, даже если Вы выключили его везде, таким образом, Вы не получаете значений. Это было моим опытом, так или иначе.

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

10
ответ дан 1 December 2019 в 00:01
поделиться

Вы могли переключить на ASP.NET MVC. Из того, что я понимаю, что это не использует ViewState.

3
ответ дан 1 December 2019 в 00:01
поделиться

Добавьте это к web.config файлу:

<Pages enableViewState="false"/> 
4
ответ дан 1 December 2019 в 00:01
поделиться

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

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

Отсутствующий ПОЛУЧИТЬ ситуация (с которым я никогда не сталкивался), большая проблема с ViewState использует его, где это не нужно. Ваше управление сеткой не должно сохранять предыдущие значения всех средств управления во всех его строках, не включайте ViewState на нем.

2
ответ дан 1 December 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: