我有 3 页。1.一个空白页面,其中只有一个@Body。我将其保留为显示其他页面的占位符。2.第二个页面有控件和@Body,它加载在第一个空白页面内。3. 第三页应该放在第二页的@Body 内而不破坏它的内容。
无论如何,当我尝试NavigationManager.NavigateTo( "/page3" );
从第二页加载时 - 第二页的内容被破坏并替换为 page3 的内容。
- 我怎样才能将竞争加载到辅助页面而不破坏它?!
我有 3 页。1.一个空白页面,其中只有一个@Body。我将其保留为显示其他页面的占位符。2.第二个页面有控件和@Body,它加载在第一个空白页面内。3. 第三页应该放在第二页的@Body 内而不破坏它的内容。
无论如何,当我尝试NavigationManager.NavigateTo( "/page3" );
从第二页加载时 - 第二页的内容被破坏并替换为 page3 的内容。
@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 内容。