Эквивалентный угловой RouterOutlet в Blazor - PullRequest
1 голос
/ 04 октября 2019

Angular имеет RouterOutlet, который позволяет автоматически изменять содержимое внутри компонента в зависимости от маршрута.

Кажется, что такая возможность недоступна в Blazor ...

Как я могуреализовать это в Blazor?

1 Ответ

0 голосов
/ 04 ноября 2019

В этом нет ничего необычного, но вы можете сделать это с помощью менеджера навигации или привязки маршрута.

  1. Привязка маршрута

Компонент страницы может иметь несколько маршрутов. Вы можете воспользоваться этим для простых двоичных случаев, таких как разделение логики между страницей добавления и редактирования.

    @page “/modifyperson”
    @page “/modifyperson/{Id}”

    @if(isEdit)
    {
    }

    @code
    {
        [Parameter] 
        public string  Id {get; set;}
        bool isEdit;

        protected override void OnInitialized()
        {
            if(!String.IsNullOrEmpty(Id))
                IsEdit=true;
        }
    }

Диспетчер навигации
    @page ”/myfirstroute”
    @page “/mysecondroute”
    @inject NavigationManager navManager 
    @if(lastRouteInfo==PageRoutes.FirstRoute)
    {
        //do something different
    }

    @code
    {
        public enum PageRoutes{FirstRoute,SecondRoute}
        private PageRoutes route;
        protected override void OnInitialized()
        { 
            string lastRouteInfo= navManager.Uri.Split(“/“).Last();
            if(lastRouteInfo==“myfirstroute”)
                route=PageRoutes.FirstRoute;
            else if(lastRouteInfo==“mysecondroute”)
                route =PageRoutes.SecondRoute;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...