2016-08-03 2 views
0

Ich habe eine angular 2 App, die gut funktioniert, außer für das Routing. Es läuft neben einer MVC5 asp.net App.Problem mit Routing in angular 2 App mit asp.net MVC 5 Anwendung

Das Problem ist, dass es immer auf die Standardroute geht. Das heißt, dass keine der von mir bereitgestellten Routen eine Übereinstimmung findet.

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

Wenn ich versuche, zu navigieren: „localhost: 8000/Seite 2“, dann die MVC-Ansicht für Page2 richtig eingelegt, aber dann wird die URL localhost geändert: 8000/Seite 2/Seite1 und der Winkel App für Seite1 wird geladen.

Ich habe versucht mit <base href="/"> in den Kopf der HTML-Seite und ich habe versucht mit und ohne die/in den Pfad geschnitten, aber keiner von ihnen scheint zu entsprechen.

Meine MVC Route Config ist wie folgt:

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

Irgendwelche Ideen dazu? Selbst eine Protokollierung wäre hilfreich.

Ich habe versucht, von angular2 beta8 zu beta 16, aber das hat das Problem nicht gelöst.

+1

Nur mit diesen Angaben unter Verwendung ist schwer, Ihnen zu helfen. Was ich sagen kann ist, dass Sie useAsDefault nicht deklarieren müssen: false. Lass es einfach weg, wenn es falsch ist. Ein weiterer Tipp: Aktualisieren Sie Ihre Angular-Bibliothek so schnell wie möglich auf die neueste Version (derzeit RC 4), da die von Ihnen verwendete Router-Komponente nicht mehr unterstützt wird und sich mit der neuen Router-Komponente viele Dinge geändert haben. –

+1

Wie sieht Ihre mvc Routen-Konfiguration aus und haben Sie irgendwelche Umschreibungsregeln? – garethb

+0

Danke für den Rat. Ich werde bald nachsehen und bald den neuen Router verwenden. Ich werde die Frage bearbeiten, um meine MVC Route config.No Rewrite-Regeln zu verwenden. Vielen Dank für Ihren Rat. – Sam

Antwort

1

Versuchen Sie Folgendes in config.MapRoute

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