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

Blazor中如何修改NavLink的默认Active类为自定义类?

Blazor NavLink自定义激活CSS类的正确用法

直接给NavLink组件传递ActiveClass参数

你之前的问题出在仅在页面@code区域定义了ActiveClass属性,但未将其传递给NavLink组件本身。正确的用法是直接在NavLink标签上指定该参数:

<NavLink href="/your-target-page" ActiveClass="test">目标页面</NavLink>

当路由匹配/your-target-page时,组件会自动应用test类,替代默认的active类(注意Blazor默认激活类为小写的active,并非你提到的Active)。

全局统一设置默认激活类

如果希望所有NavLink都使用自定义激活类,无需逐个设置,可以在Program.cs中配置导航选项:

builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents() // 根据项目类型调整,比如AddInteractiveWebAssemblyComponents
    .AddNavigationManager(options =>
    {
        options.ActiveNavLinkClass = "test";
    });

配置完成后,所有未显式指定ActiveClass的NavLink都会默认使用test作为激活类。

为什么之前的代码无效

你在@code里定义的public string? ActiveClass { get; set; } = "test";是页面自身的属性,和NavLink组件的输入参数无关。NavLink的ActiveClass是组件的内置参数,必须通过组件标签传递值才能生效。

内容的提问来源于stack exchange,提问作者Conor Drew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:24:57