Маршрутизация HTML5 в приложении Angular2 с ASP.Net ядро MVC и ASP.Net Web Api
Я разработать приложение Angular2 с ASP.Net ядро MVC и web ASP.NET API-интерфейс.
Вот моя базовая архитектура.
ASP.Net основной проект MVC (MyProject.Web)
-
Nuget, npm , и bower используется для зависимостей. Bower используется для копирования зависимостей npm из
node_modules
вwwwroot/libs/
-
Home/Index
действие контроллера доставляет первую страницу, которая загружает Angular2 и другие зависимости. - Шаблоны загружаются из ActionMethods, т. е.
Home/About
- SystemJS загружает модули.
- служба http Angular2 вызывает ASP.Net проект Web Api (отдельный проект, чем mvc)
ASP.Net Проект Web Api (MyProject.Api) - Каждый контроллер предназначен для CRUD-операций сущности и ответов на http Angular2
Проблема : я не могу использовать маршрутизацию HTML5 и вынужден хэшировать маршрутизацию потому что маршрутизация html5 вызывает сервер, а мой проект MVC не имеет соответствующего контроллера. Так что сервер ничего не возвращает.
1 ответ:
Проблема: я не могу использовать маршрутизацию HTML5 и вынужден хэшировать маршрутизацию, потому что маршрутизация html5 вызывает сервер, а мой проект MVC не имеет соответствующего контроллера. Так что сервер ничего не возвращает.
Добавление # в путь маршрута, вероятно, является наиболее распространенным решением в случае, подобном вашему, но...
Есть ли у вас какие-либо особые причины для использования MVC с Angular?
На мой взгляд, вам не нужен MVC - вы можете просто создать пусто ASP.NET основной проект и добавить в свой HTML / Angular app-чистый, простой, удобный и никаких конфликтов между MVC и Angular;)Добавьте ваши файлы (включая
index.html
) вwwwroot
и обновите вашStartup.cs
файл:public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseDefaultFiles(); <- Add this line before UseStaticFiles app.UseStaticFiles(); } }
пожалуйста, найдите дополнительную информацию: