Blazor .NET Core 3.0 - cshtml 页面可以使用 MainLayout.razor

Ale*_*erl 5 layout blazor .net-core-3.0

在以前版本的 Blazor 中,所有文件都是 cshtml 页面,并且能够使用类似于 MVC 项目的 _layout - 一切都很好。

但是现在在新的 .NET Core 3.0 版本中,Blazor 模板切换到 *.razor 文件,这些文件是 razor 组件(不是 razor 页面)。并且布局现在是Shared/MainLayout.razor并通过App.razor文件中的路由应用:

<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
Run Code Online (Sandbox Code Playgroud)

所以这会造成混乱。我们仍然可以将 razor 页面(.cshtml 文件)添加到项目中,但它们没有应用布局。创建和维护 2 个独立的相同布局会很痛苦,1 个用于 razor 页面,1 个用于 razor 组件。我无法为此找到任何指导。

有什么方法可以将 razor 组件布局(Shared/MainLayout.razor)应用于同一项目中的 razor 页面(.cshtml 文件)?如果不是,推荐的方法是什么?

d00*_*00d 1

我目前也遇到同样的问题,这真的很烦人。也对这个问题的解决方案感兴趣。我什至无法加载布局

@{

    Layout = "shared/MainLayout.razor";
}
Run Code Online (Sandbox Code Playgroud)

因为它需要一个名为MainLayout.razor.cshtml的文件。