为每个Page_Load运行代码

时间:2011-03-18 12:30:51

标签: c# asp.net pageload

我需要为ASP.NET应用程序中的每个加载页面执行HTML代码操作。放我方法的最佳位置在哪里?把代码放到每个网页的Page_Load事件中都不是很聪明,还有什么其他选择?

4 个答案:

答案 0 :(得分:10)

如果我说得对,你在Page_Load中有一些逻辑上需要发生的东西,但你想避免在每种情况下重复代码的明显问题。

我将为项目定义一个页面基础(这样做还有其他优点),所有页面代码隐藏都继承自,并且它本身继承自System.Web.UI.Page。然后,让它在适当的Page_Load之前或之后完成所需的工作。

或者,也可以在过滤器中进行HTML操作工作。

答案 1 :(得分:3)

考虑使用自定义HttpModule

http://msdn.microsoft.com/en-us/library/ms227673.aspx

或在Global.asax中,您可以在Application_PreRequestHandlerExecute中挂接所需的事件:

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;

            if (context.Handler is Page)
            {
                Page page = (Page)context.Handler;
                page.Load += ...
            }
        }
    }

答案 2 :(得分:1)

创建一个继承System.Web.UI.Page的新基类,然后在每个页面后面的代码中更新它们以继承这个新的基类而不是System.Web.UI.Page。

在这个新的基类中,您可以在所有页面上使用Page_Load调用的方法。

答案 3 :(得分:0)

我会编写一次JavaScript函数并将其导入每个页面。