Blazor 中的 @RenderSection 等价物?

@RenderSection Equivalent in Blazor?

Razor 页面有一种机制,您可以在其中引用布局中的命名部分,然后在使用该布局的页面中指定它们。例如,如果您的布局 (_Layout.cshtml) 如下所示:

@using...
...
<!DOCTYPE html>
...
<body>
...
@RenderSection("modals", required: false)
...

然后在您的仪表板页面中,例如,您将拥有:

<div>
...
</div>
...
...
@section modals
{
    <div class="modal-container>...</div>
    <div class="modal-container>...</div>
}

这会将 @section modals... 的内容注入布局中 @RenderSection("modals") 所在的位置。

如何在 Blazor 中完成此操作?

遗憾的是,Blazor 目前不支持此类功能。一年多来,Blazor 团队和社区一直在讨论此功能的必要性,但无济于事。 Read here about Sections in Blazor.

但是,如果您正在寻找 'temporary solution',您可以阅读 SteveAndeson 关于如何将参数值从 Blazor 组件页面传递到其布局的评论。我知道您正在寻找一种方法来呈现@Body 和@EndBody,但原则保持不变:您必须创建一个布局组件而不是默认布局

希望这对您有所帮助...

我创建了一个组件来获得类似于部分的内容:

https://github.com/inspgadget/BlazorSections