Это вопрос из двух частей...
1) О возможностях Angular 5/6 с Angular Universal и рендерингом на стороне сервера.
2) О Microsoft.AspNetCore.SpaServices и его поддержке страниц cshtml/внедрения предварительно обработанных бритвенных представлений в Angular.
Цель
Объедините Angular и Asp.Net Core в один проект (не только для использования API, но и для рендеринга HTML на стороне сервера).
НЕ используйте существующий начальный шаблон Microsoft.AspNetCore.SpaTemplates Angular, так как он добавляет дополнительные сложности, которые мне не нужны.
Используйте сильные стороны Asp.Net Core Razor для частичного рендеринга и манипулирования представлениями, а затем отправьте обработанный HTML-код обратно в клиент Angular.
Клиент Angular должен иметь возможность вводить отображаемый HTML-код с сервера, а затем продолжать манипуляции с DOM, связывание и т. д.
Мой прогресс
Я успешно создал базовый проект Asp.Net Core, а затем вручную интегрировал Angular.
Этапы:
Создайте основной проект Asp.Net, затем используйте angular-cli для создания нового проекта в том же каталоге "ng new MyAngularApp --minimal"
Вручную скопируйте все файлы из папки «src» из сгенерированного MyAngularApp в новую папку Asp.Net Core «ClientApp».
Затем скопируйте файлы конфигурации json (angular-cli, package и tsconfig) в корень вашего проекта Asp.Net.
Лучший справочник, который я нашел, как это сделать, был учебником Pluralsight «Создание веб-приложения с ASP.NET Core, MVC, Entity Framework Core, Bootstrap и Angular» Шона Вилдермута - https://app.pluralsight.com/library/courses/aspnetcore-mvc-efcore-bootstrap-angular-web/table-of-contents (ознакомьтесь с главой о клиентской разработке с помощью Angular) — для справки, я не имею никакого отношения к Pluralsight или Shawn
Проблема/вопрос
Я понимаю использование Node.js в качестве серверной части с Angular Universal, но я думаю, что в мире Asp.Net Core есть вполне допустимый случай для рендеринга html через Razor Page.
- Вопрос. Могу ли я использовать Microsoft.AspNetCore.SpaServices (https://github.com/aspnet/JavaScriptServices) для вызова страницы cshtml или вызова пути URL-адреса сервера, который затем будет отображаться на сервере, а затем вставлять HTML через SpaService в инфраструктуру Angular.