ASP.NET MVC PostAuthorizeRequest(和其他事件)没有触发

Ste*_*rup 5 asp.net-mvc events global-asax

我正在研究mvcForum项目(在codeplex上),并希望从global.asax文件中删除尽可能多的代码 - 主要是为了更容易将mvcForum集成到现有的ASP.NET MVC应用程序中,而无需更改太多代码.

我需要挂钩应用程序事件才能设置正确的CultureInfo(取决于用户的选择等)和其他东西.

这在global.asax文件中不是问题:

protected void Application_PostAuthorizeRequest() {
       // Some code here!
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将代码移动到其他地方时,事件永远不会发生.我正在做的是这样的:

public MVCForumBootstrapper(HttpApplication app) {
    app.PostAuthorizeRequest += new EventHandler(app_PostAuthorizeRequest);
}
Run Code Online (Sandbox Code Playgroud)

而这在global.asax中

    protected void Application_Start() {
      var strapper = new MVCForumBootstrapper(this);
    }
Run Code Online (Sandbox Code Playgroud)

我有点期待这个以完全相同的方式工作?

我做错了什么/我错过了什么?

谢谢,斯蒂恩

Dar*_*rov 6

您应该在InitGlobal.asax 的方法中执行此操作.在Application_Start这里太迟了事件:

public override void Init()
{
    base.Init();
    var strapper = new MVCForumBootstrapper(this);
}
Run Code Online (Sandbox Code Playgroud)