Вот основы моей настройки:
У меня есть класс BasePage, который наследуется от System.Web.UI.Page. BasePage имеет два реализованных свойства, так что их получение / установка выполняется из двух разных элементов в коллекции ViewState (например, this.ViewState ["Year"] из BasePage).
У меня есть еще один класс, который затем наследуется от BasePage, назовем его SpecificBasePage.
Наконец, у меня есть страница aspx, которая наследует SpecificBasePage.
Я добавил точки останова и проделал много шагов по своему коду и обнаружил, что при начальной загрузке страницы обоим моим свойствам состояния представления присваиваются значения, и эти значения сохраняются на протяжении всего жизненного цикла загрузки первой страницы.
Однако, когда страница отправляется обратно, во время события Page_Load и других обработчиков событий (когда ViewState должен быть загружен), оба свойства возвращают значение null. Проверка this.ViewState.Count показывает, что в коллекции нет объектов.
Может ли кто-нибудь придумать, что я где-то делаю, что повлияет на ViewState и вызовет такое поведение?
- Дополнение Я изолировал его от части своего кода. При начальной загрузке я даю значения свойств viewstate в OnInit, я обнаружил, что когда я перемещаю это в OnLoad, значения сохраняются в посте. Я предполагаю, что даже если добавленные значения состояния представления сохраняются на протяжении всего жизненного цикла начальной страницы, они заброшены в обратной публикации?