如何在MainLayout中获取输入参数?

时间:2019-12-14 14:38:06

标签: c# asp.net-core blazor asp.net-core-3.0

  1. Blazor应用程序:我具有自定义的页眉徽标和自定义的页脚链接, 会根据输入参数{id}发生变化。

  2. 在查询中使用输入参数ID检索公司徽标,并且 来自数据库的页脚链接信息。

动态页眉和页脚是mainlayout的一部分,如何通过mainlayout获取输入参数?

1 个答案:

答案 0 :(得分:0)

假设您已经创建了Company父组件,该组件可以获取代表公司ID的路由参数,其值用于检索可能在子组件中显示的公司详细信息。您可以这样定义父组件:

Company.razor

map

注意:以上两个路由模板是必需的...

正在回答您的问题... 将此代码添加到MainLayout组件

@page "/company"
@page "/company/{ID}"

@code {
    [Parameter]
    public string ID { get; set; }
}

注意:上面的代码从RouteData中提取ID参数的值,并将其存储在ID属性中。现在,您可以使用它进行任何操作,包括将它传递给NavMenu组件(如果需要的话)。这是您可以做到的方式:

向NavMenu组件添加一个Component Parameter属性,如下所示:

@code{

    public string ID { get; set; }

    protected override void OnParametersSet()
    {
        // pull out the "ID" parameter from the route data
        object id = null;
        if ((this.Body.Target as RouteView)?.RouteData.RouteValues?.TryGetValue("ID", out id) == true)
        {
            ID = id?.ToString();
        }

    }
}

并将ID组件参数属性添加到NavMenu组件实例(位于MainLayout组件的顶部。它现在应为[Parameter] public string ID { get; set; }

你现在快乐吗?