为每个Page_Load运行代码

Tom*_*mas 2 c# asp.net pageload

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

Jon*_*nna 10

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

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

或者,也可以在过滤器中执行您所讨论的HTML操作工作.


Rob*_*ert 6

考虑使用自定义 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 += ...
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)