我对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();
}
答案 0 :(得分:1)
你必须以某种丑陋的方式破解它,所以最好的解决方案是说服控制global.asax的人给你一些钩子。
但是路由可以在任何地方注册,只要它只发生一次并且在应用程序生命周期的早期,所以可能是某个地方的静态构造函数?
问题是他们应该确保在应用程序启动期间访问持有ctor的类型,这可能引入新的头痛,但它可能是可行的。
但是又一次:启动事件中的某种钩子会更好。
答案 1 :(得分:0)
查看App_Start
文件夹。根据{{3}}:
“我们也可以在使用任何新内容时避免触及Global.asax文件 需要使用Global.asax“
中的Application_Start的块包