Обратная передача AJAX и жизненный цикл страницы - PullRequest
0 голосов
/ 19 мая 2009

Может ли кто-нибудь объяснить мне, как это работает.

У меня есть страница, на которой есть кнопка внутри панели обновления и какой-то член класса (_pageContext). Это не статичный член, кстати Это его декларация

    internal PageContext _pageContext = null;

Когда я нажимаю кнопку, происходят следующие события (я отслеживаю их, делая точки останова)

1) Конструктор страниц. _pageContext == ноль в точке останова, хорошо 2) OnInit (). Здесь начинаются странные вещи. _pageContext уже инициализирован (хотя его метод инициализации также имеет точку останова, и эта точка останова никогда не была достигнута).

Как это может произойти и откуда новый экземпляр класса страницы может узнать этот _pageContext, хотя он никогда не был инициализирован? Имеет смысл, что предыдущий экземпляр класса восстанавливается при частичной обратной передаче On_Init, хотя это невозможно, поскольку HTTP не имеет состояния и браузер не имеет связи с экземплярами класса сервера.

Любые предложения и объяснения этого сверхъестественного факта?

1 Ответ

0 голосов
/ 21 мая 2009

HTTP действительно без сохранения состояния. ASP.NET WebForms абстрагирует вас от хитрого использования ViewState. Похоже, pageContext создается ViewStated - для получения дополнительной информации посмотрите .

И не волнуйтесь, если сначала это не очевидно - понять жизненный цикл не так просто. Нух-э-э.

...