blazor 服务器端 Pages 文件夹中的 MainLayout.razor 和 _layout.cshtml 以及 Pages\Shared 文件夹中的 _layout.cshtml 有什么区别?

Siy*_*emi 8 blazor

我使用 blazor 服务器端和 Visual Studio 2022。我使用 MainLayout.razor 作为默认布局。但我不明白 Pages 文件夹和 Pages\Shared 文件夹中的 _layout.cshtml 有何用途?谢谢。

Jal*_*kum 4

在 .Net 6 Blazor 项目中

MainLayout.razor:

  • MainLayout 用于在所有 blazor 组件中渲染的默认布局,如果我们想在某些页面中渲染其他布局,则需要指定布局。

  • MainLayout用于设置单页常用内容

    @layout EmptyLayout
    
    Run Code Online (Sandbox Code Playgroud)

如上所述,我们需要声明特定组件的布局。

_布局.cshtml:

  • Blazor 中较低版本的 .Net 6 我们在 blazor 项目中有 _host.cshtml 文件,但在 .Net 6 中我们有 _layout 和 _host 这两个文件,如下所示 _layout 文件是从 _host 调用的。
  • 这是_host.cshml的代码
@namespace admin_app.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
    Layout = "_Layout";
}
<component type="typeof(App)" render-mode="Server" />
Run Code Online (Sandbox Code Playgroud)
  • .Net6的低版本这些内容设置在_host文件中,现在_layout文件用于声明整个网站使用的通用css、js和通用内容。
  • 我们还在 _layout 文件中创建了 javascript 函数。