Как я могу избежать маршрутизации на стороне клиента, когда вы хотите перемещаться за пределами установленного списка настроек маршрутов в маршрутизаторе?Несколько SPA с использованием областей MVC - Навигация по внешним маршрутам SPA-маршрутизатора
Я создал проект с использованием Durandal.js и создал SPA внутри разных областей. Проблема, с которой я столкнулся, заключается в том, что когда я хочу перемещаться за пределы текущего SPA и в другое, или сказать на домашней странице всего приложения, которое вообще не является SPA, а просто страницей cshtml.
Что я пытался сделать, это использовать обработчик mapUnknownRoutes Durandal для перехвата, а затем использовать window.location.href для перехода. Это работает, но когда я хочу перейти на главную страницу приложения («/»), маршрутизатор соответствует «корню» SPA и не переходит на домашнюю страницу, а вместо этого корневой маршрут SPA.
Площадь маршрута в этом примере «/ spaHome» маршрут которого MVC выглядит следующим образом:
context.MapRoute(
"spaHome_default",
"spaHome/{*catchall}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Вот что я сделал, чтобы настроить Дюрандаль маршрутизатор:
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" });
Любые указатели или ведет в правильное направление для этого, было бы высоко оценено!