2009-05-19 6 views
0

誰かがどのように動作するか説明できますか?AJAXのポストバックとページのライフサイクル

私は更新パネルの中にボタンといくつかのクラスメンバー(_pageContext)を持つページを持っています。 それは静的メンバーではない、私はボタンをクリックすると、その宣言

internal PageContext _pageContext = null; 

だ道 によって、次のイベントは、(私は彼らがブレークポイントを作るトレース)

1)ページのコンストラクタを発生します。ブレークポイントで_pageContext == null、ok 2)OnInit()。ここで奇妙なことが始まります。 _pageContextは既に初期化されています(初期化メソッドもブレークポイントされ、そのブレークポイントは一度もヒットしませんでした)。

ページクラスの新しいインスタンスが初期化されていないのに、この_pageContextをどこから知ることができますか? On_Init部分ポストバックで以前のクラスインスタンスが復元されることは意味がありますが、HTTPはステートレスで、ブラウザはサーバークラスインスタンスとの接続がないため不可能です。

この超自然の事実に関する提案や説明はありますか?

答えて

0

HTTPはステートレスです。 ASP.NET WebFormsは、ViewStateの巧みな使い方で、あなたから離れたものを抽象化します。 pageContextのようなサウンドが存在するためにViewStatedされています - look at this for more info

最初は明白ではないかと心配しないでください。ライフサイクルの理解は容易ではありません。ナー、ああ。