ASP.Net中的页面生命周期序列

时间:2017-01-11 22:47:36

标签: asp.net

我是ASP.Net的新手,所以我的问题可能有点愚蠢,我不太明白每个阶段如何在ASP.Net页面生命周期中运行,我写了一些代码包含一个简单的页面标签控件和按钮控件,发现序列是:

1.处理页面初始化事件。

2.页面加载事件处理。

3.页面预先处理事件。

4.页面加载事件处理。

5.页面回发事件处理。

6.处理按钮点击事件。

7.页面处理prerender事件。

我的问题是:

  1. 为什么会出现两次像页面加载这样的事件?

  2. 人们通常说page_load事件发生在按钮点击事件之前。我不太明白,人们是否意味着在按钮点击事件之前处理page_load事件?如果是,那么我理解,所以它就像我们单击一个提交按钮,我们实际上触发2个事件,一个用于按钮点击事件,一个用于页面加载事件和页面加载事件首先处理?

    < / LI>
  3. 任何人都可以用简单的方式解释每个阶段的步骤吗?比如当用户点击按钮时,幕后发生了什么

1 个答案:

答案 0 :(得分:2)

  1. 为什么像页面加载这样的事件会被引发两次?

    每个来自服务器的页面请求都会引发一次PageLoad事件。当asp.net页面回发到服务器时,它的PageLoad事件将再次被调用。如果检查IIS日志,则应该从浏览器/客户端看到对该页面的两个请求。第一个是页面的原始请求,第二个是按下按钮后(我认为这会导致回发)。

  2. 人们通常说page_load事件发生在按钮点击事件之前。我不太明白,人们是否意味着在按钮点击事件之前处理page_load事件?如果是,那么我理解,所以它就像我们点击提交按钮,我们实际上触发2个事件,一个用于按钮点击事件,一个用于页面加载事件和页面加载事件首先处理?

    在asp.net页面的生命周期中,它在客户端请求页面时开始,在页面呈现给客户端后结束。 Andrew Shepherd发送给您的链接提供了一个关于asp.net页面生命周期的非常好的教程。请务必阅读并理解它。

  3. 任何人都可以用简单的方式解释每个阶段的步骤吗?比如当用户点击按钮时,幕后发生了什么?

    这实际上取决于你连接到按钮的内容。该按钮可能导致客户端脚本执行,或者可能导致在Web服务器上执行某些操作。