2016-08-03 20 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" } 
 
    ); 
 
    });