Как обнаружить обновление страницы в угловом SPA-шаблоне ядра .net? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть настройка проекта с использованием шаблона .net core MVC SPA.Когда приложение загружено, оно загружает угловой спа в MVC.

В моей конфигурации запуска указан код для загрузки SPA.

        app.UseSpa(spa =>
        {
            // To learn more about options for serving an Angular SPA from ASP.NET Core,
            // see https://go.microsoft.com/fwlink/?linkid=864501

            spa.Options.SourcePath = "ClientApp";

            if (env.IsDevelopment())
            {
                spa.UseAngularCliServer(npmScript: "start");
            }
        });

После загрузки SPA связь с сервером отсутствует.сторона на сайте MVC.Однако, когда страница перезагружается, я хотел бы перехватить этот вызов и сделать что-то с HTTPRequest и HTTPResponse.Как мне этого добиться?У меня нет контроллера в проекте MVC.

Структура моего проекта выглядит следующим образом.

WEB
- wwwroot
- ClientApp ---> Angular spa
- Контроллеры ---> Пустой
- Страницы ---> Пустой
- startup.cs
- program.cs

1 Ответ

0 голосов
/ 19 ноября 2018

Для перехвата запроса между клиентом и сервером вы можете попробовать ASP.NET Core Middleware . Все запросы от клиента будут обработаны middleware.

Простой код, подобный приведенному ниже:

        app.Use((context, next) =>
        {
            Console.WriteLine(context.Request.Path);
            return next.Invoke();
        });

        app.UseSpa(spa =>
        {
            // To learn more about options for serving an Angular SPA from ASP.NET Core,
            // see https://go.microsoft.com/fwlink/?linkid=864501

            spa.Options.SourcePath = "ClientApp";

            if (env.IsDevelopment())
            {
                spa.UseAngularCliServer(npmScript: "start");
            }
        });

Обновление

            app.Map("/css/site1.css", map => {
            map.Run(context => {
                context.Response.Redirect("/css/site2.css");
                return Task.CompletedTask;
            });
        });
...