Asp.net mvc 角度2+;ASP.NETMVC应用程序中的无路由

Asp.net mvc 角度2+;ASP.NETMVC应用程序中的无路由,asp.net-mvc,angular,Asp.net Mvc,Angular,我必须在ASP.NETMVC内容管理系统中工作。作为其中的一部分,ASP.NETMVC必须控制路由,因为它是内容管理方式的组成部分。它会重新加载整个页面,所以我不会构建一个单页面应用程序 我想使用Angular 2+(目前正在试用版本4)作为我的前端框架,这样我就可以利用组件架构、绑定、类型脚本、单元测试等。但是,我不需要路由 我的目的是编译Angular应用程序一次,并在ASP.NETMVC布局页面上添加适当的JS和CSS资产。然后,在需要Angular的每个页面上,我都会添加引导组件,然后嵌

我必须在ASP.NETMVC内容管理系统中工作。作为其中的一部分,ASP.NETMVC必须控制路由,因为它是内容管理方式的组成部分。它会重新加载整个页面,所以我不会构建一个单页面应用程序

我想使用Angular 2+(目前正在试用版本4)作为我的前端框架,这样我就可以利用组件架构、绑定、类型脚本、单元测试等。但是,我不需要路由

我的目的是编译Angular应用程序一次,并在ASP.NETMVC布局页面上添加适当的JS和CSS资产。然后,在需要Angular的每个页面上,我都会添加引导组件,然后嵌套其他组件(no
router outlet

不幸的是,如果没有路由,它似乎无法工作

这是我的一些代码

\u Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="~/Dist/vendor.css" />
</head>
<body>
    @RenderBody()
    <script src="~/Dist/vendor.js"></script>
    <script src="~/Dist/main-client.js"></script>
</body>
</html>
<app>
    <test-component>
    </test-component>
</app>

@RenderBody()
app.component.html

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="~/Dist/vendor.css" />
</head>
<body>
    @RenderBody()
    <script src="~/Dist/vendor.js"></script>
    <script src="~/Dist/main-client.js"></script>
</body>
</html>
<app>
    <test-component>
    </test-component>
</app>

控制器视图(Index.cshtml)


输出

在Chrome中查看HTML源代码在Razor视图中显示相同的HTML

但是,使用Chrome开发工具检查页面有以下几点。注意:控制台中没有错误

app
元素被呈现,而
testcomponent
元素没有呈现(来自
testcomponent.component.HTML
的HTML不会被替换到页面中)。我猜是因为Angular 2+需要
路由器插座
组件


是否可以在没有路由的情况下使用Angular 2+?

在没有路由的情况下使用Angular 2+是可能的。你有什么错误?我的反馈没有错误。为什么不使用MVC来100%满足您的“组件架构、绑定、单元测试”需求呢。在每次页面加载时设置angular将使页面速度变慢,因为angular应用程序必须从头开始加载。在非SPA中使用Angular可能是一个非常错误的决定。因为技术应该根据需要而不是新技术的可用性来选择。你做到了吗?@Gillardo,我们没有让它工作,而是使用了React