将 MVC 5 项目迁移到 Angular 2

Raj*_*Raj 2 .net model-view-controller asp.net-mvc-5 angular

关于将 .Net MVC 5 项目迁移到 Angular 2 的方法的任何建议。这是一个大项目,我们不能等待完全过渡。当我们可以一次迁移几个页面并仍然继续使用旧项目时,我们正在寻找一种并行移动。

我看到了有关如何在 MVC 5 中使用 Angular 2 的解决方案,但我们不想在这里合并这些问题,因为我们在使用另一个 javascript 框架时遇到了一些问题。

感谢您的帮助。

bra*_*ndo 5

在一段时间内,您的一些路由将由 asp.net mvc 服务器端处理,而一些路由将由 ng2 应用程序客户端处理。

首先,想象一下转换完成后您的应用程序会是什么样子:您将拥有一个 razor cshtml 视图来启动您的应用程序。现在继续创建此视图,将其命名为“ngappview.cshtml”。它看起来像这样:

<!DOCTYPE html>

<html>
<head>
    <base href="/">
    <link href='~/assets/styles.bundle.min.css?v=5359476866832222' rel="stylesheet">

</head>
<body>
    <app>
        loading...
    </app>
    <script type='text/javascript' src='~/assets/main.bundle.min.js?v=5359476866832222'></script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

现在,服务器端,每次将特定页面转换为 ng2 应用视图时,只需提供 ngappview.cshtml 视图。这将是您的 mvc 控制器:

[Route("someRouteConvertedToNg2")]
public class SomeController: Controller {

  public ActionResult ThisIsNowNg2Function() {

    return View("~/Views/ngappview.cshtml");
  }


}
Run Code Online (Sandbox Code Playgroud)

在客户端,当您的 ng2 应用程序需要调用仍在服务器端由 asp.net mvc 管理的路由时,您将不得不强制回发到该特定路由。请记住,对于每次回发,您将丢失在 ng2 应用程序中维护的任何状态;并且每次 ng2 视图都会重新加载 ng2 应用程序(可能很烦人)。一段时间会有点乱,但最终它会自己解决。

同时,这里有一篇关于如何最好地(在我看来)使用 asp.net mvc 设置 ng2 项目的相关文章:https ://stackoverflow.com/a/40234393/3532945