首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazor中的等价角RouterOutlet

Blazor中的等价角RouterOutlet
EN

Stack Overflow用户
提问于 2019-10-05 01:49:22
回答 1查看 158关注 0票数 2

Angular有一个RouterOutlet,它允许根据路由自动更改组件内部的内容。

似乎这样的机会在Blazor中是不存在的。

我如何在Blazor中实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-11-04 11:19:45

它没有任何花哨的内置功能,但你可以使用导航管理器或路由绑定来实现。

  1. 路由绑定

一个页面组件可以有多个路由。对于简单的二进制情况,例如在添加和编辑页面之间共享逻辑,您可以利用这一点。

代码语言:javascript
复制
    @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;
        }
    }

  1. 导航管理器

代码语言:javascript
复制
    @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;
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58241105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档