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

如何在Blazor中点击MudButton实现页面跳转?

Blazor中实现MudButton点击跳转页面的方法

针对你的需求,这里提供几种Blazor原生的实现方式,比用JS操作DOM更合适:

1. 直接使用MudButton的Href属性(最简方案)

MudButton组件原生支持Href属性,直接指定目标路由地址就能实现跳转,不需要额外逻辑:

<MudButton Href="/your-target-page" 
           ButtonType="ButtonType.Button" 
           Variant="Variant.Filled" 
           Color="Color.Primary" 
           Class="ml-auto">
    Cancel
</MudButton>

如果需要在新标签页打开,可以添加Target="_blank"属性。

2. 通过NavigationManager实现带逻辑的跳转

如果需要在跳转前执行一些业务逻辑(比如表单验证、数据保存),可以借助Blazor内置的NavigationManager服务:

首先在组件顶部注入服务:

@inject NavigationManager NavManager

然后修改按钮的OnClick事件:

<MudButton ButtonType="ButtonType.Button" 
           OnClick="@HandleCancelClick" 
           Variant="Variant.Filled" 
           Color="Color.Primary" 
           Class="ml-auto">
    Cancel
</MudButton>

@code {
    private void HandleCancelClick()
    {
        // 这里添加跳转前的逻辑,比如提示确认、清理数据等
        NavManager.NavigateTo("/your-target-page");
    }
}

3. 不推荐:通过JS互操作跳转

虽然可以用你熟悉的JS方式实现,但这种方法依赖浏览器环境,不符合Blazor的组件化思路,仅作为参考:

先注入IJSRuntime:

@inject IJSRuntime JSRuntime

然后调用JS方法:

<MudButton ButtonType="ButtonType.Button" 
           OnClick="@NavigateViaJs" 
           Variant="Variant.Filled" 
           Color="Color.Primary" 
           Class="ml-auto">
    Cancel
</MudButton>

@code {
    private async Task NavigateViaJs()
    {
        await JSRuntime.InvokeVoidAsync("eval", "window.location.href = '/your-target-page'");
    }
}

总结

优先选择第一种方案,简洁高效;需要业务逻辑时用第二种;第三种尽量避免使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:05:35