Маршрутизация 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 4

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();            
    }
}


пожалуйста, найдите дополнительную информацию: