0

谁能解释一下它是如何工作的。

我有一个页面,其中有更新面板内的按钮和一些类成员(_pageContext)。顺便说一句,它不是静态成员这是它的声明

    internal PageContext _pageContext = null;

当我单击按钮时,会发生下一个事件(我跟踪它们制作断点)

1) 页面构造函数。_pageContext == null 在断点处,好的 2) OnInit()。奇怪的事情从这里开始。_pageContext 已经被初始化(尽管它的初始化方法也是断点的,而且这个断点从未被命中)。

它是如何发生的以及页面类的新实例可以从哪里知道这个 _pageContext ,尽管它从未被初始化?在 On_Init 部分回发时恢复之前的类实例是有道理的,尽管这是不可能的,因为 HTTP 是无状态的并且浏览器与服务器类实例没有连接。

对这个超自然的事实有什么建议和解释吗?

4

1 回答 1

0

HTTP 确实是无状态的。ASP.NET WebForms 通过巧妙地使用 ViewState 将这些从您那里抽象出来。听起来 pageContext 正在被 ViewStated 存在 -看看这个以获得更多信息

如果一开始并不明显,请不要担心——理解生命周期并不容易。嗯嗯。

于 2009-05-21T05:27:19.493 回答