2016-08-03 63 views
0

我有一个角2应用程序工作正常,除了路由。它与MVC5 asp.net应用程序一起运行。问题与角度2应用程序与asp.net MVC 5应用程序的路由

问题是它总是进入默认路由。也就是说,我提供的路线都不匹配。

@RouteConfig([ 
     { path: '/Page1', name: 'Page1', component: Page1Component, useAsDefault: true }, 
     { path: '/Page2', name: 'Page2', component: DPage2Component, useAsDefault: false } 
    ]) 

如果我尝试导航到:“本地主机:8000 /第2页”则第2页的MVC观点是正确加载,但随后的URL改变为localhost:8000 /第2页/第1页和角应用的Page1将加载。

我已经尝试在html页面的头部使用<base href="/">,并且我尝试了使用和不使用路径中的/ slashed,但没有一个匹配。

我的MVC路线的配置如下:在这个

app.UseMvc(config => 
     { 
     config.MapRoute(
      name: "Default", 
      template: "{controller}/{action}/{id?}", 
      defaults: new { controller = "Home", action = "Index" } 
     ); 
     }); 

任何想法?即使是一些日志记录也会有帮助

我已经尝试从angular2 beta8切换到beta 16,但是这并没有解决问题。

+1

是很难帮助你。我可以说的是你不需要声明useAsDefault:false。错误时只需省略。另一个建议:尽快将你的Angular lib升级到最新版本(目前是RC 4),因为你使用的路由器组件已经被弃用,并且新路由器组件已经改变了很多。 –

+1

你的mvc路由配置是什么样的,你是否有任何重写规则集? – garethb

+0

感谢您的建议。我会尽快升级并尽快使用新的路由器。 我将编辑问题以包含我的MVC路由配置。不使用重写规则。 谢谢你的建议。 – Sam

回答

1

请尝试使用config.MapRoute

只有这些相关信息如下

app.UseMvc(config => 
 
    { 
 
    config.MapRoute(
 
     name: "Default", 
 
     url: "{*.}", 
 
     defaults: new { controller = "Home", action = "Index" } 
 
    ); 
 
    });