Angularjs路由与MVC 5路由冲突

时间:2015-03-16 15:40:57

标签: asp.net asp.net-mvc angularjs routing asp.net-mvc-5

我正在ASP.Net MVC 5应用程序中开发一个使用angular的迷你SPA。基本上我想使用这个迷你SPA进行入职/注册工作流程,并使用ASP.Net MVC视图和路由获取其他功能。

对于Onboarding mini SPA,我已经定义了MVC路线:

routes.MapRoute(
           name: "Onboarding",
           url: "onboarding/{*catchall}",
           defaults: new { controller = "Onboarding", action = "Create" }
       );

Angular配置如下:

(function () {
var app = angular.module('app', ['ngRoute']);
app.config(function ($routeProvider, $locationProvider) {

    $routeProvider.caseInsensitiveMatch = true;
    $routeProvider.when('/onboarding', { templateUrl: '/app/Views/CreateShop.html', controller: 'onboardingController' })
        .when('/onboarding/add-product', { templateUrl: '/app/Views/AddProduct.html', controller: 'onboardingController' })

    $locationProvider.html5Mode(true);
});}());

Create.chtml用作此迷你SPA的容器/入口点。

    <div ng-controller="onboardingController">
    <div ng-view></div>
</div>
@section scripts {
    @Scripts.Render("~/bundles/angularOnboarding")
}

问题:当我在迷你SPA中时,我的导航链接/路线会中断,例如导航到联系页面或关于页面(MVC视图)不起作用。 Angular似乎处理所有路由请求。此外,从导航到某个MVC路由的锚标签导航不起作用。 将URL放在浏览器中可以正常工作。 如何使我的混合方案工作? 非常感谢任何建议或解决方案,谢谢。

0 个答案:

没有答案