应该在ASP.NET页面中完成哪些操作?

问题描述 投票:7回答:6

我对ASP.NET非常陌生,在击败a few problems之后,我想知道我做错了什么(我有这样做的坏习惯)。我有兴趣了解ASP.NET的运行方式。

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

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

  • 我应该在Page_Load做什么处理?
  • 我应该对Load事件做什么处理?
  • 我在Page_Unload可以做些什么?
  • 做什么顺序?
  • 每个事件何时被解雇?
  • 什么是页面生命周期?

编辑:this question也可能对某些人有用。

asp.net page-lifecycle
6个回答

5
投票

各个人发布的链接确实非常有用 - ASP.NET页面生命周期对于grok和master来说并不总是很容易!

关于建议 - 我建议更喜欢被覆盖的方法与“魔法”附加的方法,例如:更喜欢

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()版本中没有这种灵活性。


5
投票

您需要学习的第一件事就是能够理解您刚才提出的问题:PAGE LIFE CYCLE。有时这是一个婊子,特别是ViewState部分。

•我应该在Page_Load中进行哪些处理?

•我应该对Load事件进行哪些处理? = Page_load

•我在Page_Unload中可以做什么?清理

•完成任务的顺序是什么? PAGE LIFE CYCLE

•每个事件何时被解雇? PAGE LIFE CYCLE

•页面生命周期是什么? alt text

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

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


4
投票

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

ASP.NET Page Life Cycle Overview

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

The ASP.NET Page Life Cycle

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


2
投票

我肯定会建议你读这个:

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

如果你是asp.net的新手,你将无法获得所有这些,但实际上,我还没有找到关于来自ms文档或任何ms员工博客的主题的详细文档。

我做得很艰苦,并遵循我可以使用反汇编代码的每条路径,但那个人真的花时间写它。


-1
投票

基本上尝试在Page_Load中做,如果这不起作用,请在Page_InitPage_Render中尝试。通常其中一个工作:)这是科学的方法。

© www.soinside.com 2019 - 2024. All rights reserved.