c# - ASP.NET 3.5 页面加载 - 设计问题

标签 c# asp.net

我有一个包含一系列母版页的网站,这些母版页均源自“基础”母版页。对于此示例,我们将其称为 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/

相关文章:

asp.net - 使用 jQuery 对 FILE 类型的 INPUT 进行客户端验证,无需回发

c# - 正则表达式分割模式多行

c# - LINQ 查询仅使用 Entity Framework 计算的值

asp.net - VB.Net IIf函数中添加SqlParameter

asp.net - WCF 和 REST 与 SOAP

c# - 提交修改viewstate所需的ajax asp表单

c# - 如何将 ASP.NET 5 (vNext) 用户 secret 注入(inject)我自己的实用程序类?

c# - 包装 C# 类以通过公共(public)接口(interface)与多态性一起使用

c# - 这是计算表达式的候选者吗?

c# - 是否可以使用 C# 中的委托(delegate)返回方法的代码(作为字符串)?