是否有一个函数随时可以在您的应用程序中加载任何页面?

我希望能够在应用程序中加载任何页面的任何时候运行脚本。 有什么地方我可以简单地添加这个吗? 或者我是否必须在每个页面加载中添加代码?

你可以做以下三件事之一:

  1. 在应用程序中使用基页 ,并使应用程序中的所有页面都从中inheritance。 在基页的page_load事件中,执行您必须执行的操作。 如果应用程序中的inheritance页面覆盖了page_load (通常会这样做),请确保应用程序中的inheritance页面调用基页的page_load事件。 因为page_load被过度使用,所以我会给出相关建议来查看所有页面事件 (尤其是page_prerender ),以防其他更合适。

  2. 使用在global.asax页面中触发的事件,这些事件在收到请求时发生。 查看Application_BeginRequest事件。 但是,那里有很多事件,所以请检查它们 ,以防其他事件更适合您的情况。 (就像常规页面事件一样,不要养成总是使用相同事件的坏习惯。)

  3. 每次你想要发生的事情都有可能进入一个母版页 ,特别是如果它的布局相关。 母版页似乎很可爱,但已certificate自己的设计很好。 如果您使用母版页的page_load事件来实现常用function,则无需从每个内容页面的page_load中调用它; 它在每次调用页面的page_load事件后触发。 (我之所以提到这一点,是因为首先很容易混淆母版页和基页。)

您可以在Global.asax文件中使用BeginRequest事件。

http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx

您还可以创建并注册HTTP模块 。 这样做的好处是它们已在web.config中注册,因此您可以在运行时添加和删除它们,如果您需要…并且有多个。

您可以为您的页面创建一个公共基类,它来自System.Web.UI.Page并在那里的OnLoad处理程序中添加代码。

您可以通过拦截ASP.Net Page生命周期的任何方法,使用PageAdapters在每个aspx页面请求上注入Code。

本文可以帮助您了解其工作原理 : http : //dotnet.org.za/hiltong/archive/2008/01/06/injecting-a-page-base-class-in-asp-net.aspx

问候。