Перехватите Blazor Маршрутизация / навигация на стороне сервера ДО того, как это произойдет - PullRequest
3 голосов
/ 10 октября 2019

Я работаю над приложением Blazor на стороне сервера. NavBar слева, как и любой, кто знаком с Blazor, заполнен гиперссылками, просто украшенными специальным классом CSS. Моя проблема в том, что я пытаюсь остановить навигацию и показать всплывающее окно на одной конкретной странице, если что-то было отредактировано.

Я пытался использовать обработчик из LocationChanged, чтобы поймать его, но он не 'Запустите метод до тех пор, пока URL не будет изменен. Я попытался использовать dbContext.ChangeTracker.HasChanges () в операторе if, а затем у меня появилось модальное всплывающее окно, в котором спрашивалось, хотите ли вы сохранить изменения или перейти на другую страницу, но я не могу найти способ его отключить ДОURL изменился. Я пробовал пакет nuget под названием BlazorBeforeUnload, чтобы добавить обработчик событий, который перехватывает перенаправление или маршрутизацию до того, как это произойдет, но он написан для .net стандарта 2.0, а не .net core 3.0. Я могу написать C # прилично, но я не достаточно хорош, чтобы понять, как преобразовать его из одного в другой или узнать, возможно ли это в этом случае.

Я ожидал, что у меня будет какой-то методзапуск события непосредственно перед перенаправлением или обновлением страницы, но я не могу найти что-либо ни в Visual Studio, ни где-либо еще в Интернете, кроме пакета стандартной версии 2.0 .net, который выдает мне ошибки сборки.

...