相关疑难解决方法(0)

Blazor:从布局访问参数

如何从布局访问页面的路由参数?

我有一个接受路由参数的页面,如下所示:

@page /my-page/{Slug}
Run Code Online (Sandbox Code Playgroud)

我需要访问Slug在共享布局中呈现标记时的值。

我尝试OnParametersSet在布局文件中实现如下所示,但未设置该值。它仅在页面级别分配。

@inherits LayoutComponentBase

<div class="sidebar">
    <NavMenu />
</div>

<div class="main">
    <div class="top-row px-4">
            @this.Slug   <<<<------ display the parameter
    </div>

    <div class="content px-4">
        @Body
    </div>
</div>

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

    protected override void OnParametersSet()
    {
        // Slug is always null :-/
    }
}
Run Code Online (Sandbox Code Playgroud)

blazor blazor-server-side

9
推荐指数
2
解决办法
4873
查看次数

将 blazor RenderFragment 从页面或组件模板化为布局

我想在 blazor 的布局页面中包含可自定义的内容。我尝试向布局添加一个RenderFragment参数,并在组件中添加同名的化妆品,但它没有在我的布局中呈现。

layout.razor

<header>
    @HeaderContent
</header>

@body

@code
{
    [Parameter] 
    public RenderFragment HeaderContent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

component.razor

<HeaderContent>
    <p>my page specific content</p>
</HeaderContnt>
Run Code Online (Sandbox Code Playgroud)

但它HeaderContent是在体内呈现的。有人能解释一下如何做到这一点吗?或者为什么它在布局中不可能?我发现有效的唯一方法是这样,但如果我更改 RenderFragment 中的绑定参数,它不会刷新内容。

layout rendering blazor

6
推荐指数
1
解决办法
3328
查看次数

除 Body 之外的 Blazor 页面元素

我有一个 Blazor 服务器端应用程序,试图了解其结构。在 MainLayout.razor 页面中,我看到了标签 @Body,这是每个页面内容的呈现位置。

我想知道,是否可以向 mainLayout 页面添加额外的渲染元素?例如,@Header 部分。而且我更愿意在每个单独的页面中定义这个部分。

换句话说,对于每个页面,除了主要内容之外,还需要定义Header、Footer,或者我在MainLayout中定义的任何渲染元素。这样,我可以自定义每个页面唯一的页眉/页脚元素。

谢谢你的帮助。

blazor blazor-server-side

1
推荐指数
1
解决办法
764
查看次数

标签 统计

blazor ×3

blazor-server-side ×2

layout ×1

rendering ×1