角路由始终重定向到同一页面

时间:2018-08-02 21:18:20

标签: asp.net-mvc angular asp.net-web-api angular2-routing

我在应用程序中路由存在问题。我使用Angular2 +和WebApi2。我从quickstart项目创建了Angular,并将其添加到WebApi解决方案中。配置完成后,我首次启动了所有应用程序,一切正常。添加路由后出现问题。当我尝试导航到路由表中包含的链接时,浏览器始终将我重定向到一个组件。我搜索了如何处理它,但没有找到任何东西。下面,我介绍代码和文件名:

RouteConfig.cs

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
     routes.MapRoute(
        name: "Default",
        url: "{*url}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

共享_Layout.cshtml

<script src="/node_modules/core-js/client/shim.min.js"></script>
<script src="/node_modules/zone.js/dist/zone.js"></script>
<script src="/node_modules/systemjs/dist/system.src.js"></script>
<script src="~/src/systemjs.config.js"></script>
<script>
    System.import('./src/main.js').catch(function (err) { console.error(err); });
</script>

system.config.js

packages: {
  app: {
    defaultExtension: 'js',
    meta: {
      './*.js': {
        loader: '/src/systemjs-angular-loader.js'
      }
    }
  },
  rxjs: {
    defaultExtension: 'js'
  }
}

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { HomePage } from './HomePage.component';
import { Test } from './Test.component';
import { HttpModule } from '@angular/http';

const appRoutes: Routes = [
    { path: '', redirectTo: 'home', pathMatch: 'full' },
    { path: 'home', component: HomePage },
    { path: 'test', component: Test },
    { path: '**', component: HomePage }
];

@NgModule({
    declarations: [
        AppComponent, HomePage, Test
    ],
    imports: [
        BrowserModule,
        HttpModule,
        RouterModule.forRoot(appRoutes)
    ],
    providers: [],
    bootstrap: [HomePage]
})
export class AppModule { }

Index.cshtml     <home-page></home-page>

1 个答案:

答案 0 :(得分:1)

答案:所有问题都是由@RenderBody()引起的。当我将<home-page></home-page>移到@RenderBody()下时,一切正常。