想要将MVC4添加到WebForms应用程序,无法访问global.asax文件

时间:2013-07-26 18:32:29

标签: asp.net asp.net-mvc-4 webforms

我对mvc4和webforms进行了“混合和匹配”的研究,并发现了一些链接,特别是This one.

似乎可行,除了我想将此添加到我无法访问其global.asax代码隐藏的现有webforms应用程序。我通过将我的dll放在应用程序根目录的bin文件夹中来更新当前webforms应用程序的一部分。

如果我不能在global.asax的application_start方法中注册路由,过滤器和包,还有另一种方法吗?

换句话说,这段代码会去哪里?

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }

2 个答案:

答案 0 :(得分:1)

你必须以某种丑陋的方式破解它,所以最好的解决方案是说服控制global.asax的人给你一些钩子。

但是路由可以在任何地方注册,只要它只发生一次并且在应用程序生命周期的早期,所以可能是某个地方的静态构造函数?

问题是他们应该确保在应用程序启动期间访问持有ctor的类型,这可能引入新的头痛,但它可能是可行的。

但是又一次:启动事件中的某种钩子会更好。

答案 1 :(得分:0)

查看App_Start文件夹。根据{{​​3}}:

  

“我们也可以在使用任何新内容时避免触及Global.asax文件   需要使用Global.asax“

中的Application_Start的块包