gpt4 book ai didi

asp.net - 获取 ASP.NET 页面生命周期的状态

转载 作者:行者123 更新时间:2023-12-02 18:27:08 24 4
gpt4 key购买 nike

我的方法需要以下功能:如果在 ASP.NET 生命周期的 OnLoad 事件之前调用该方法,则抛出异常,否则继续执行该方法。

我在想这样的事情:

if (Page.LifeCycleState < LifeCycleState.OnLoad) {
throw new InvalidPageStateException();
}

是否可以检索 ASP.NET 页面生命周期的状态?

最佳答案

一种方法是使用您在网站中始终使用的基本页面。这将包含一个名为 PageLoadComplete 的变量,您可以在 PageLoad 事件结束时设置该变量。然后您可以在方法中检查该变量的状态。

public abstract class BasePage : System.Web.UI.Page
{
public bool PageLoadComplete { get; private set; }
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
PageLoadComplete = true;
}
}

如果您想从页面外部的代码(例如 UserControl)访问该变量,则必须将其公开并将您的页面转换为 BasePage。

public partial class MyUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
BasePage basePage = this.Page as BasePage;
if (basePage != null && !basePage.PageLoadComplete)
{
throw new InvalidPageStateException();
}
}
}

关于asp.net - 获取 ASP.NET 页面生命周期的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3563798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com