경로는 순서에 따라 우선 순위가 부여되므로 경로가 MVC 경로에 어떤 순서로 있는지 똑똑해야합니다. 예를 들어, 모양은 다음과 같습니다.
/app/Facturacion/
각도를 실행할 위치입니다. 그래서 MVC 경로에서, 언제 당신이/Facturacion /는, 각 루트 앱 이상 걸릴 것입니다로 시작하는 경로를 공격 그래서 지금
routes.MapRoute(
name: "ngRoute",
url: "app/Facturacion/{*angularRoute}",
defaults: new {controller = "Facturacion", action = "Index" }
);
RouteConfig
에서 첫 번째 경로로 추가. 그렇지 않으면 건너 뛰고 MVC 경로를 계속 사용합니다. 각도 (/ app/Facturacion /)와 동일한 경로를 사용하는 특정 MVC 경로가있는 경우 RouteConfig의 ngRoute 위에 추가하면 MVC 및 각도가 계속 실행됩니다.
routes.MapRoute(
name: "myMvcRoute",
url: "app/Facturacion/someRoute",
defaults: new {controller = "Facturacion", action = "SomeAction" }
);
은 색인 작업을보기를 반환하여 FacturacionController에 있는지 확인하고보기에, 당신의 각 스크립트와 각 코드를 추가합니다. 예보기
@{
ViewBag.Title = "Facturacion";
}
@section head{
<base href="/"> //Add a head section in your layout (make it optional)
}
@section scripts{
@Scripts.Render("~/bundles/angularjs")
@Scripts.Render("~/bundles/facturacionSPA")
}
<div ng-app="facturacionApp">
<div ng-view></div>
</div>
같은 것 그리고 각도 경로는 또한
$routeProvider.when('/app/Facturacion/MantenimientoFacturas', {
templateUrl: '/Facturacion/MantenimientoFacturas',
controller: 'FacturasController'
}).when('/app/Facturacion/MantenimientoOrdenes', {
templateUrl: '/Facturacion/MantenimientoOrdenes',
controller: 'OrderController'
}).otherwise({
redirectTo: '/ServiceDesk/starter',
});
처럼 보일 것이다, 각 템플릿은 일반 HTML 파일이 아닌 부분적인 전망을해야한다. 각도 물건에 대한 각도 및 mvc 물건에 대한 MVC에 충실하는 것이 좋습니다. 내 의견으로는 혼합하지 마십시오!
편집 : '/의 ServiceDesk/스타터'는 MVC 경로이며, 당신이 당신의 각 컨트롤러에이 같은 작업을 수행 할 수 있습니다, 그것은 노선에 각하지 않을 경우에 대한
if ($location.url().indexOf('/ServiceDesk/starter') >= 0 && supports_history_api()) $window.location.href = '/ServiceDesk/starter';
코드 completeness를 위해 supports_history_api()는 내가 이전 IE가 작동해야하므로 $ locationProvider에 html5 모드를 사용할지 여부를 결정합니다.
function supports_history_api() {
return !!(window.history && history.pushState);
}
답장을 보내 주셔서 감사합니다. routes.MapRoute ( 이름 : "myMvcRoute", url : "app/Facturacion/someRoute", 기본값 : new {controller = "Factracion", action = "SomeAction"} ); MVC하지만 $ routeProvider에있는 앱은 결코 URL에 도달하지 않습니다. 그것은 나를 리디렉션 할 것입니다. 다른 경우에도 제거합니다. 다른 방법으로 그것은 기본 href로 나를 리디렉션합니다, 나는 모든 경로를 $ routeProvider에 추가 할 수있는 힘입니다. – user3542595
네, 앵귤러 애플 리케이션은 결코 URL을 치지 않을 것입니다, 당신이 정상적인 MVC URL을 실행하고 각도 애플 리케이션을 실행하지 않으려는 경우 그 진술했다.하지만 난 당신이 앵글 내에서 앵글에서 mvc로 각도를 벗어나고 싶어, $ window.location.href를 사용하여, 각도 $ 위치 (어쨌든 내가 뭘) 사용하지 마십시오. 그래서 각도에서 mvc로 이동하려면 $ window.location.href = yourMVCroute를 사용하십시오. 각도를 유지하려면 $ location을 사용하십시오. – garethb
편집 내 대답보기 – garethb