2009-05-19 8 views
0

Quelqu'un pourrait-il m'expliquer comment cela fonctionne?Publication AJAX et cycle de vie de la page

J'ai une page, qui a un bouton dans le panneau de mise à jour et un membre de classe (_pageContext). Il n'est pas membre statique, par la voie Voilà sa déclaration

internal PageContext _pageContext = null; 

Lorsque je clique sur le bouton, les événements suivants se produit (je les trace faisant des points d'arrêt)

1) page constructeur. _pageContext == null au point d'arrêt, ok 2) OnInit(). Ici, des choses étranges commencent. _pageContext est déjà initialisé (bien que sa méthode d'initialisation soit également en point d'arrêt, et que ce dernier n'ait jamais été touché).

Comment cela peut-il se produire et où une nouvelle instance de classe de page peut-elle connaître _pageContext, bien qu'elle n'ait jamais été initialisée? Il est logique que l'instance précédente de classe soit récupérée à la publication partielle On_Init, bien que cela soit impossible puisque HTTP est sans état et que le navigateur n'a aucune connexion avec les instances de classe de serveur.

Des suggestions et des explications de ce fait surnaturel?

Répondre

0

HTTP est en effet sans état. ASP.NET WebForms fait abstraction de vous avec l'utilisation judicieuse de ViewState. Des sons comme pageContext est en cours d'affichage ViewStated - look at this for more info.

Et ne vous inquiétez pas si ce n'est pas évident au premier abord - il n'est pas facile de comprendre le cycle de vie. Nuh uh.

Questions connexes