我有一个包含一系列母版页的网站,这些母版页均源自“基础”母版页。对于此示例,我们将其称为 MasterPage.master。
编辑-----
网站基本上有两部分:公共(public)和私有(private)。我们想创建一个自定义站点跟踪“实用程序”。任何时候点击一个页面...我们都会捕获大量有关用户的数据以供将来报告等。
现在我正在公共(public)网站上工作..但我想在 3-4 个月后为私有(private)网站重用这个“实用程序”。
对我来说,母版页似乎不是实现此目的的最佳方式...虽然我还是 .NET 的新手,但我觉得母版页应该只用于组织 UI。
我已经研究了 Custom IHttpModule 并且已经能够让一些东西工作......但是如果你问我的话它有点贫民窟。
public void Init(HttpApplication context)
{
context.AcquireRequestState += (new EventHandler(this.context_AquireRequest));
}
...
void context_AquireRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
if (context.CurrentHandler is Page){
//Do Stuff
}
}
结束编辑----
是否有比以下方法更好的方法让每次加载页面时运行一段代码...例如自定义 IHttpModule 或以某种方式在 Global.asax 中。
[MasterPage.master] ...
protected void Page_Load(object sender, EventArgs e)
{
//...do stuff...
}
谢谢
最佳答案
如果代码块总是一样的话,我会推荐
- 为您的所有页面创建一个基类
- 在该页面的 OnLoad 中编写代码
- 让你所有的页面都继承自这个基类
这是一个代码示例:
public abstract class PageBase : Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// do stuff
}
}
您的所有页面都将继承自此:
public class DisplayOrder : PageBase
{
// do stuff
}
希望对您有所帮助。
关于c# - ASP.NET 3.5 页面加载 - 设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007553/