Wie kann ich das clientseitige Routing umgehen, wenn ich außerhalb der im Router festgelegten Routenliste navigieren möchte?Multiple SPA Verwenden von MVC-Bereichen - Navigieren außerhalb von SPA Router-Routen
Ich habe ein Projekt mit Durandal.js erstellt und SPA in verschiedenen Bereichen erstellt. Das Problem, auf das ich gestoßen bin, ist, wenn ich außerhalb des aktuellen SPA und in einen anderen navigieren oder zurück zur Homepage der gesamten Anwendung, die überhaupt kein SPA ist, sondern einfach eine cshtml-Seite sagen soll.
Was ich versucht habe, ist Durandals mapUnknownRoutes-Handler abzufangen und dann window.location.href zu verwenden, um heraus zu navigieren. Das funktioniert, aber wenn ich auf die Homepage der Anwendung ("/") gehe, stimmt der Router mit dem "root" des SPA überein und navigiert nicht auf die Homepage, sondern stattdessen auf die Root-Route des SPA.
Die Gegend Route in diesem Beispiel "/ spaHome" -Route, deren MVC wie folgt aussieht:
context.MapRoute(
"spaHome_default",
"spaHome/{*catchall}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Hier ist, was ich habe die Durandal Router einzurichten getan:
var routes = [
{ route: ['spaHome', ''], moduleId: 'spaHome', title: "spaHome", hash: "#spaHome"},
{ route: 'one/anotherPage', moduleId: 'one/anotherPage', title: "one/anotherPage", hash: "#one/anotherPage"}
];
router.makeRelative({ moduleId: 'viewmodels' });
router.map(routes)
.mapUnknownRoutes(function (instruction) {
utils.navigateToPath(instruction.fragment);
return false;
})
.activate({ pushState: true, root: "/spaHome" });
Alle Hinweise oder führt in die richtige Richtung dafür würde sehr geschätzt werden!