経路は優先順位に応じて優先順位が与えられますので、ルートがMVC経路内のどのような順番であるかを知るだけで済みます。例として、それはのように見える
/app/Facturacion/
あなたが角度を実行する場所です。だからあなたのMVCのルートで、RouteConfig
routes.MapRoute(
name: "ngRoute",
url: "app/Facturacion/{*angularRoute}",
defaults: new {controller = "Facturacion", action = "Index" }
);
であなたの最初のルートとして追加いつでもアプリ/ Facturacion /で始まるルートを打つだから今、角度のルートが引き継ぎます。それ以外の場合は、スキップしてMVCルートを使用し続けます。角度(/ app/Facturacion /)と同じパスを使用する特定のMVCルートがある場合は、RouteConfigのngRouteの上に追加してください。
routes.MapRoute(
name: "myMvcRoute",
url: "app/Facturacion/someRoute",
defaults: new {controller = "Facturacion", action = "SomeAction" }
);
indexアクションは、ビューを返し、あなたのビューでは、あなたの角度スクリプトや角度のコードを追加することをご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>
ようなものになるだろうそして、あなたアンギュラルートはまた、角度テンプレートは通常のHTMLファイルではなく、部分的なビューでなければなりません
$routeProvider.when('/app/Facturacion/MantenimientoFacturas', {
templateUrl: '/Facturacion/MantenimientoFacturas',
controller: 'FacturasController'
}).when('/app/Facturacion/MantenimientoOrdenes', {
templateUrl: '/Facturacion/MantenimientoOrdenes',
controller: 'OrderController'
}).otherwise({
redirectTo: '/ServiceDesk/starter',
});
ようになります。角度のついたものやmvcのもののためのMVCにぴったりの方がいいですね、私の意見でそれらを混ぜないでください!
EDIT: 「/のServiceDesk /スターターが」MVCのルートであり、あなたはそれにルーティングする角度たくない場合は、あなたがあなたの角度コントローラでこのような何かを行うことができます。
if ($location.url().indexOf('/ServiceDesk/starter') >= 0 && supports_history_api()) $window.location.href = '/ServiceDesk/starter';
コードについて完成度を高めるためにsupports_history_api()を使用すると、$ locationProviderにhtml5モードを使用するかどうかが決まります。
function supports_history_api() {
return !!(window.history && history.pushState);
}
ありがとうございました!このルートをマップすると疑いがあります:routes.MapRoute( 名前: "myMvcRoute"、 url: "app/Facturacion/someRoute"、 デフォルト:new {controller = "Facturacion"、action = "SomeAction"} ); MVCでは$ rootProviderではなく、アプリケーションはURLにヒットしませんでした。それは私をリダイレクトします。他の場合でも、それを削除します。それ以外の場合、私はベースhrefにリダイレクトされます、私はすべてのルートを$ routeProviderに追加する必要がありますか? – user3542595
はい、角度アプリは、そのURLを打つことはない、私はあなたが正常なMVCのURLを実行し、角度アプリを実行したい場合は、それを述べていた。しかし、私はあなたの角度から戻ってmvcに戻ってくるために、$ window.location.hrefを使用して角$場所(私はとにかくやっている)を使用しないでそのURLをロードしたかった。したがって、角度からmvcに行くには、$ window.location.href = yourMVCrouteを使用してください。角度を保つには、$ locationを使用します。 – garethb
編集を参照してください私の答え – garethb