贝利信息

Blazor 共享布局 MasterPage 设置方法

日期:2025-12-17 00:00 / 作者:幻夢星雲
Blazor 使用 Layout 组件替代 ASP.NET Web Forms 的 MasterPage,功能一致且更灵活;通过继承 LayoutComponentBase、定义 @Body 占位符、支持依赖注入与嵌套布局实现解耦式 UI 结构。

Blazor 没有传统 ASP.NET Web Forms 的 MasterPage,但它的 Layout 组件 就是等效替代方案——功能一致、更灵活,且原生支持数据绑定、依赖注入和嵌套。

创建 Layout 组件(相当于 MasterPage)

布局组件本质是一个继承 LayoutComponentBase 的 Razor 组件,必须包含 @Body 占位符:

示例:

@inherits LayoutComponentBase

My App

@Body
© @DateTime.Now.Year

在页面中应用 Layout

两种方式任选其一:

注意:登录页、错误页等无需通用导航的页面,可通过 的条件逻辑跳过默认布局。

嵌套布局(多级 MasterPage 场景)

当不同模块(如用户管理、订单中心)需要各自侧边栏+全局页眉页脚时,就用嵌套:

样式隔离与维护建议

Blazor 支持 CSS 隔离,推荐为每个 Layout 单独配 MainLayout.razor.css

基本上就这些。不是换个名字,而是用组件化思路真正解耦 UI 结构。