作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Blazor 应用程序:我有自定义页眉 Logo 和自定义页脚链接将根据输入参数 {id} 改变。
在查询中使用输入参数 ID 来检索公司 Logo ,并且来自数据库的页脚链接信息。
动态页眉和页脚是mainlayout的一部分,如何通过mainlayout获取输入参数?
最佳答案
假设您创建了一个 Company 父组件,该组件可以获取表示公司 ID 的路由参数,该参数的值用于检索可能显示在子组件中的公司详细信息。你可以这样定义父组件:
@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"/>
你现在快乐吗?
关于c# - 如何在 MainLayout 中获取输入参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59336089/
我是一名优秀的程序员,十分优秀!