这是一个两部分问题......
1)关于Angular Universal和Server Side Rendering的Angular 5/6功能。
2)关于Microsoft.AspNetCore.SpaServices及其对cshtml页面的支持/将预呈现的剃刀视图注入Angular。
目标
将Angular和Asp.Net Core合并到一个项目中(不仅用于API,还用于服务器端HTML呈现)
NOT 使用现有的Microsoft.AspNetCore.SpaTemplates Angular启动器模板,因为它增加了一些我不需要的额外复杂性。
利用Asp.Net Core Razor的优势进行局部视图渲染和放大操作,然后将呈现的HTML发送回Angular客户端
Angular Client应该能够从服务器注入呈现的HTML,然后继续DOM操作,绑定等。
我的进步
我已经成功创建了一个基本的Asp.Net Core项目,然后手动集成了Angular。
步骤如下:
创建Asp.Net核心项目,然后使用angular-cli在同一目录“ ng new MyAngularApp --minimal ”中创建一个新项目
将生成的MyAngularApp中“src”文件夹中的所有文件手动复制到Asp.Net Core新文件夹“ClientApp”
然后将json配置文件(angular-cli,package& tsconfig)复制到Asp.Net项目的根目录中。
最佳参考我发现如何做到这一点是一个Pluralsight教程“使用ASP.NET Core,MVC,实体框架核心,Bootstrap和Angular构建Web应用程序”作者:Shawn Wildermuth - {{ 3}}(查看有关Angular的客户端开发的章节) - 对于记录我与Pluralsight或Shawn没有任何关系
问题/疑问
我理解使用Node.js作为Angular Universal的后端,但我认为在Asp.Net Core世界中,通过Razor Page渲染html有一个非常有效的案例。
以下是Angular Component 的示例 https://github.com/aspnet/JavaScriptServices