AngularJS 2受ASP.NET MVC中URL的影响

时间:2016-09-08 21:37:31

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

我在ASP.NET MVC 5项目中使用AngularJS 2,我不使用Angular提供的路由,只依赖于MVC路由策略。

奇怪的是,当我在路线“域/控制器”时,AngularJS似乎会查看网址并且只能正确加载,如果我在路线上“domain /控制器/“”域名/控制器/操作“我的Angular应用未加载,我在浏览器中出现以下错误:

enter image description here

我正在使用以下脚本加载我的引导程序:

<script src="~/Scripts/systemjs.config.js"></script>
<script>
    System.import('../tsScripts/boot').catch(function (err) {
        console.error(err);
    });
</script>

我的boot.ts文件:

///<reference path="./../typings/globals/core-js/index.d.ts"/>
import {bootstrap}    from '@angular/platform-browser-dynamic';
import {HTTP_PROVIDERS} from '@angular/http';

import {AppComponent} from './app';

bootstrap(AppComponent, [HTTP_PROVIDERS]);

我不知道为什么Angular(或框架中的其他部分)与MVC路由不兼容,或者我的实现有什么问题。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题, 我只是解决了将此代码放入 _Layout.cshtml head 标记(以便应用于所有视图)

<head>
  <base href="/">
  ...
</head>

Angular official doc

您也可以通过这种方式修复

import {APP_BASE_HREF} from '@angular/common';

@NgModule({
  ...
  imports: [RouterModule], 
  providers: [{provide: APP_BASE_HREF, useValue : '/' }]
]);