2011-05-12 41 views
5

我正在开发mvcForum项目(在codeplex上)并且想要从global.asax文件中移除尽可能多的代码 - 主要是为了更容易集成mvcForum到现有的ASP.NET MVC应用程序中,而不会改变太多的代码。ASP.NET MVC PostAuthorizeRequest(和其他事件)没有触发

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

这不是在Global.asax文件这个问题:

protected void Application_PostAuthorizeRequest() { 
     // Some code here! 
} 

但是当我尝试别的地方移动代码,事件从未发生过。 我在做什么是这样的:

public MVCForumBootstrapper(HttpApplication app) { 
    app.PostAuthorizeRequest += new EventHandler(app_PostAuthorizeRequest); 
} 

这在Global.asax

protected void Application_Start() { 
     var strapper = new MVCForumBootstrapper(this); 
    } 

我是种期待这对以完全相同的方式工作?

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

感谢,斯蒂恩

回答

6

你应该在Global.asax中的Init方法做到这一点。在Application_Start它太晚太钩事件:

public override void Init() 
{ 
    base.Init(); 
    var strapper = new MVCForumBootstrapper(this); 
} 
+0

当然,我应该,就像在HttpModules。谢谢! – 2011-05-12 07:46:21