0

我有 3 页。1.一个空白页面,其中只有一个@Body。我将其保留为显示其他页面的占位符。2.第二个页面有控件和@Body,它加载在第一个空白页面内。3. 第三页应该放在第二页的@Body 内而不破坏它的内容。

无论如何,当我尝试NavigationManager.NavigateTo( "/page3" );从第二页加载时 - 第二页的内容被破坏并替换为 page3 的内容。

  • 我怎样才能将竞争加载到辅助页面而不破坏它?!

在此处输入图像描述

4

1 回答 1

0

@Body您只能在布局组件上使用默认占位符,继承自LayoutComponentBase. 您的第一个空白页肯定会这样做,否则不会显示 page2。但是要@Body在 page2 上有一个占位符并使用路由导航到 page3,您需要让 page2 也成为一个布局。所以你真正需要做的就是让page2也成为一个布局,将它的布局设置为page1,将page3的布局设置为page2。如果您想在某些路线上显示只有 page2 的空白@Body,您应该为此路线设置一个完全空白的页面并将其布局设置为 page2。就像是:

BlankPageLayout.razor

@inherits LayoutComponentBase

@Body

Page2Layout.razor

@inherits LayoutComponentBase
@layout BlankPageLayout

<some html>
    @Body
</some html>

Page2.razor

@page "/page2"
@layout Page2Layout

Page3.razor

@page "/page3"
@layout Page2Layout

<some html></some html>

现在导航到page2你只会得到一个 Page2Layout 并导航到 page3会得到一个 Page2Layout 里面有 page3 内容。

于 2020-06-15T22:15:03.440 回答