Я думаю, что нашел свой ответ. Существует базовый класс DeclContext для многих блоков decls, включая RecordDecl. Этот класс имеет открытые функции-члены для итерации всех decls внутри структуры, взгляните на decls_begin () и decls_end ().
Можно выключить состояние отображения для целого сайта как это:
<system.web>
<pages enableViewState="false" />
Тем не менее Вы не должны получать его на URL. ViewState является скрытым полем, которое отправляется на сервер с обратной передачей (который обычно использует сообщение). Это сохраняет состояние средств управления, когда страница была представлена клиенту, отправив его с каждой обратной передачей. Если это работает на приложение, Вы могли бы переключиться для использования сообщения вместо этого (проблемная форма, конечно, использует, добираются), если не смотрят на ответ Jon.
Проверьте эту ссылку для получения дополнительной информации о том, как состояние отображения вписывается в жизненный цикл asp.net: http://msdn.microsoft.com/en-us/library/ms972976.aspx.
У меня был подобный вопрос при записи Средства отслеживания Репутации.
Я не знаю, как Вы делаете это глобально кроме только к никогда использованию форма с runat="server"
набор, который больше относится к дисциплине, чем установка. В частности, если Вы имеете runat="server"
набор на форме, я полагаю, что Вы будете всегда получать параметр состояния отображения, даже если Вы выключили его везде, таким образом, Вы не получаете значений. Это было моим опытом, так или иначе.
Очевидно, это ограничивает Вас несколько, но я нашел, что использование управления сервером HTML (вместо средств управления ASP.NET) для соответствующих частей ASP.NET может сделать жизнь намного более простой понять.
Вы могли переключить на ASP.NET MVC. Из того, что я понимаю, что это не использует ViewState.
Добавьте это к web.config файлу:
<Pages enableViewState="false"/>
Действительно вспомните, однако, что определенные поведения, ожидаемые большинством разработчиков веб-форм ASP.NET, не будут работать без ViewState. Цель ViewState состоит в том, чтобы обеспечить иллюзию, что различная страница и свойства элементов управления сохраняются от одного запроса до следующего. ViewState не содержит все свойства элементов управления, просто те, которые изменились. Идея состоит в том, что ViewState сохраняет эти свойства, как они были в то время форма, в последний раз представленная.
Одним хорошим примером является a SelectedIndexChanged
событие на выпадающем (то, которому не установили автообратную передачу). Это работает, потому что ViewState сохраняет предыдущий индекс, и форма отправляет текущий индекс, и управление сравнивает два, чтобы знать, что выбранный индекс изменился. Именно тогда это повышает SelectedIndexChanged
событие. Без ViewState не будет стрелять то событие. То же для TextChanged
события, и т.д.
Отсутствующий ПОЛУЧИТЬ ситуация (с которым я никогда не сталкивался), большая проблема с ViewState использует его, где это не нужно. Ваше управление сеткой не должно сохранять предыдущие значения всех средств управления во всех его строках, не включайте ViewState на нем.