如何获取MainLayout中的输入参数?
How to get input parameter in MainLayout?
Blazor 应用程序:我有自定义页眉徽标和自定义页脚 link
会根据输入参数{id}改变。
输入参数 ID 用于检索公司徽标的查询中,并且
页脚 link 来自数据库的信息。
动态页眉和页脚是主布局的一部分,如何通过主布局获取输入参数?
假设你已经创建了一个公司父组件,它可以获取一个路由参数来表示公司ID,其值用于检索可能显示在子组件中的公司详细信息。您可以这样定义父组件:
Company.razor
@page "/company"
@page "/company/{ID}"
@code {
[Parameter]
public string ID { get; set; }
}
注意:以上两个路由模板是必须的...
正在回答您的问题...
将此代码添加到 MainLayout 组件
@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();
}
}
}
注意:上述代码从RouteData中提取出ID参数的值,并存储在ID属性中。现在您可以随心所欲地使用它...包括在必要时将其传递给 NavMenu 组件。您可以这样做:
向 NavMenu 组件添加组件参数 属性,如下所示:
[Parameter]
public string ID { get; set; }
并在NavMenu组件实例中添加一个ID组件参数属性(位于MainLayout组件的顶部。现在应该是<NavMenu ID="@ID"/>
你现在开心吗?
Blazor 应用程序:我有自定义页眉徽标和自定义页脚 link 会根据输入参数{id}改变。
输入参数 ID 用于检索公司徽标的查询中,并且 页脚 link 来自数据库的信息。
动态页眉和页脚是主布局的一部分,如何通过主布局获取输入参数?
假设你已经创建了一个公司父组件,它可以获取一个路由参数来表示公司ID,其值用于检索可能显示在子组件中的公司详细信息。您可以这样定义父组件:
Company.razor
@page "/company"
@page "/company/{ID}"
@code {
[Parameter]
public string ID { get; set; }
}
注意:以上两个路由模板是必须的...
正在回答您的问题... 将此代码添加到 MainLayout 组件
@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();
}
}
}
注意:上述代码从RouteData中提取出ID参数的值,并存储在ID属性中。现在您可以随心所欲地使用它...包括在必要时将其传递给 NavMenu 组件。您可以这样做:
向 NavMenu 组件添加组件参数 属性,如下所示:
[Parameter]
public string ID { get; set; }
并在NavMenu组件实例中添加一个ID组件参数属性(位于MainLayout组件的顶部。现在应该是<NavMenu ID="@ID"/>
你现在开心吗?