You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Blazor中简洁设置页面标题,支持布局默认与页面覆写?

Blazor 页面标题简洁实现方案

核心实现:使用官方内置 PageTitle 组件

从.NET 6开始,Blazor提供了原生的PageTitle组件,完全满足「MainLayout设置默认标题+子页面选择性覆写」的需求,属于官方推荐的简洁方案,并非取巧操作。

步骤1:在MainLayout中配置默认标题

在MainLayout.razor里添加全局默认的PageTitle组件,作为所有页面的标题 fallback:

@inherits LayoutComponentBase

<PageTitle>我的默认站点标题</PageTitle>

<div class="page">
    <div class="sidebar">
        <NavMenu />
    </div>

    <main>
        <div class="top-row px-4">
            <a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
        </div>

        <article class="content px-4">
            @Body
        </article>
    </main>
</div>

步骤2:子页面选择性覆写标题

需要自定义标题的页面,直接在页面顶部添加专属的PageTitle组件即可,它会自动覆盖MainLayout中的默认标题:

@page "/counter"

<PageTitle>计数器页面</PageTitle>

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

额外技巧:动态拼接标题(可选)

如果需要实现「默认标题前缀+子页面自定义后缀」的效果,可以在MainLayout中通过级联值或路由监听实现:

@inherits LayoutComponentBase

<PageTitle>@FullTitle</PageTitle>

@code {
    private string FullTitle = "我的站点 | 首页";

    // 通过级联值接收子页面传递的标题后缀
    [CascadingParameter]
    public string PageTitleSuffix { get; set; } = "首页";

    protected override void OnParametersSet()
    {
        FullTitle = $"我的站点 | {PageTitleSuffix}";
    }
}

子页面传递自定义后缀:

@page "/counter"
@attribute [CascadingParameter(Name = "PageTitleSuffix")] string _ => "计数器"

<h1>Counter</h1>
<!-- 页面内容 -->

内容的提问来源于stack exchange,提问作者David Thielen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:07:12