7

我对 ASP.NET 很陌生,在遇到一些问题后,我想知道我是否做错了(我有这样做的坏习惯)。我有兴趣了解 ASP.NET 的运作方式。

我的问题是:我在哪里可以找到文档来指导我决定在哪里进行哪些处理?

作为一些具体的例子(我对这些问题的答案很感兴趣,但我宁愿指出一个提供更一般答案的资源):

  • 我应该做什么处理Page_Load
  • Load我应该对事件进行什么处理?
  • 可以Page_Unload什么?
  • 事情是按什么顺序完成的?
  • 每个事件何时触发?
  • 什么是页面生命周期?

编辑:这个问题也可能对某些人有用。

4

6 回答 6

5

为了能够理解您刚刚提出的问题,您需要学习的第一件事是:页面生命周期。有时它是个婊子,尤其是 ViewState 部分。

• Page_Load 中应该做什么处理?

• 我应该对Load 事件进行哪些处理?=页面加载

• Page_Unload 我能做什么?清理

• 做事的顺序是什么?页生命周期

• 什么时候触发每个事件?页生命周期

•什么是页面生命周期?替代文字

编辑:图片来源:http ://www.eggheadcafe.com/articles/20051227.asp

更多信息: http: //www.codeproject.com/KB/aspnet/PageLifeCycle.aspx

于 2009-07-27T19:12:42.937 回答
5

各种人发布的链接确实非常有帮助 - ASP.NET 页面生命周期确实并不总是很容易理解和掌握!

关于建议 - 我建议更喜欢被覆盖的方法而不是“神奇”的附加方法,例如更喜欢

protected override void OnLoad(EventArgs e)

超过

protected void Page_Load(object sender, EventArgs e)

为什么?简单:在被覆盖的方法中,您可以指定自己是否以及何时调用基方法:

protected override void OnLoad(EventArgs e)
{ 
    base.OnLoad(e);
    // your stuff
}

或者:

protected override void OnLoad(EventArgs e)
{ 
    // your stuff
    base.OnLoad(e);
}

甚至:

protected override void OnLoad(EventArgs e)
{ 
    // some of your stuff
    base.OnLoad(e);
    // the rest of your stuff
}

甚至:

protected override void OnLoad(EventArgs e)
{ 
    // your stuff
    // not call the base.OnLoad at all
}

Page_Load() 版本没有这种灵活性。

马克

于 2009-07-27T19:31:44.227 回答
4

这里有一些很好的链接可以帮助您入门。了解ASP.NET 生命周期如何组合在一起对于了解您的代码将如何与之交互至关重要。

ASP.NET 页面生命周期概述

当 ASP.NET 页面运行时,页面会经历一个生命周期,在该生命周期中它会执行一系列处理步骤。其中包括初始化、实例化控件、恢复和维护状态、运行事件处理程序代码和呈现。了解页面生命周期对您来说很重要,这样您就可以在适当的生命周期阶段编写代码以获得您想要的效果。此外,如果您开发自定义控件,则必须熟悉页面生命周期才能正确初始化控件、使用视图状态数据填充控件属性以及运行任何控件行为代码。(控件的生命周期基于页面生命周期,但页面引发的控件事件多于单独的 ASP.NET 页面可用的事件。)

ASP.NET 页面生命周期

当页面请求被发送到 Web 服务器时,无论是通过提交还是位置更改,页面都会在其创建和处置期间运行一系列事件。当我们尝试构建 ASP.NET 页面并且没有考虑到这个执行周期时,我们可能会给自己带来很多麻烦。但是,如果正确使用和操作,页面的执行周期可以成为一种有效而强大的工具。许多开发人员意识到了解发生了什么以及何时发生对于有效编写 ASP.NET 页面或用户控件至关重要。因此,让我们详细研究一下 ASP.NET 页面从创建到处理的十个事件。我们还将了解如何利用这些事件来植入我们自己的自定义代码。

于 2009-07-27T19:11:51.770 回答
2

ASP.net 页面生命周期

于 2009-07-27T19:10:34.190 回答
2

我绝对会推荐你阅读这个:

http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

如果您是 asp.net 的新手,您将很难获得所有这些信息,但实际上,我还没有从 ms 文档或任何 ms 员工博客中找到关于该主题的如此详细的文档。

我做了很艰难的事情,并遵循了我可以使用反汇编代码的每一条路径,但是那个人真的花时间来编写它。

于 2009-07-27T19:51:48.630 回答
-1

基本上尝试并在其中进行Page_Load,如果这不起作用,请在Page_Init或中尝试Page_Render。通常其中一个有效:) 这是科学方法。

于 2009-07-27T20:12:14.003 回答