我希望能够在应用程序中加载任何页面时运行脚本。有什么地方我可以简单地添加这个吗?还是我必须在每个页面加载中添加代码?
5 回答
您可以做以下三件事之一:
在您的应用程序中使用一个基本页面,并让您的应用程序中的所有页面都继承自它。在基本页面的 page_load 事件中,做你必须做的事情。确保应用程序中的继承页面在覆盖 page_load时调用基本页面的 page_load 事件(它们通常会这样做)。而且由于 page_load 被过度使用,我会给出相关建议来查看所有页面事件(尤其是page_prerender),以防另一个更合适。
使用在global.asax页面中触发的事件,这些事件在收到请求时发生。查看 Application_BeginRequest 事件。但是,那里有很多事件,所以请检查它们,以防另一个事件更适用于您的情况。(就像常规的页面事件一样,不要养成总是使用相同事件的坏习惯。)
您每次想要发生的事情都有可能进入母版页,特别是如果它与布局相关。母版页看起来很可爱,但已经在良好的设计中证明了自己。如果您将母版页的 page_load 事件用于通用功能,则不必从每个内容页的 page_load 调用它;它每次在被调用页面的 page_load 事件之后触发。(我之所以提到这一点,是因为一开始很容易混淆母版页和基本页。)
Global.asax
您可以在文件中使用 BeginRequest 事件。
http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx
您还可以创建和注册一个HTTP Module。这样做的好处是它们已在 web.config 中注册,因此您可以根据需要在运行时添加和删除它们......并且拥有多个。
您可以为您的页面创建一个公共基类,从 System.Web.UI.Page 继承,并将代码添加到那里的 OnLoad 处理程序中。
您可以使用 PageAdapters 通过拦截 ASP.Net 页面生命周期的任何方法,在每个 aspx 页面请求上注入代码。
本文可以帮助您了解其工作原理: http: //dotnet.org.za/hiltong/archive/2008/01/06/injecting-a-page-base-class-in-asp-net.aspx
问候。