我需要为ASP.NET应用程序中的每个加载页面执行HTML代码操作。放我方法的最佳位置在哪里?把代码放到每个网页的Page_Load事件中都不是很聪明,还有什么其他选择?
答案 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函数并将其导入每个页面。