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

Blazor项目中NavigationManager.NavigateTo()跳转失败求助

解决Blazor中NavigationManager.NavigateTo跳转抛出NavigationException的问题

首要修复:按钮属性错误

你的提交按钮代码存在语法错误:

<button class="btn btn-primary" typeof="submit">Update</button>

这里的属性应该是type="submit"而非typeof="submit"。错误的属性会触发浏览器默认的表单HTTP提交行为,与Blazor客户端导航逻辑冲突,直接导致NavigationException。修正后代码:

<button class="btn btn-primary" type="submit">Update</button>

后续排查方向(若修复按钮后问题仍存在)

  • 确认路由组件加载配置
    检查App.razor中的Router组件是否正确包含目标组件所在程序集:

    <Router AppAssembly="@typeof(App).Assembly">
        <Found Context="routeData">
            <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
        </Found>
        <NotFound>
            <LayoutView Layout="@typeof(MainLayout)">
                <p>无法找到该页面</p>
            </LayoutView>
        </NotFound>
    </Router>
    

    Blazor Server需确认_Host.cshtml正确引用App组件;WebAssembly需确认wwwroot/index.html中<base href="/" />配置符合部署路径。

  • 验证导航调用参数
    在Submit方法中显式指定导航参数测试:

    NavigationManager.NavigateTo("/servers", forceLoad: false);
    

    若无效,尝试forceLoad: true(强制页面刷新,排查客户端路由是否异常)。

  • 排查路由冲突与拼写
    确保没有其他组件使用@page "/servers"路由,同时保持路径拼写完全一致(避免大小写不一致引发隐性问题)。

  • 输出完整异常信息
    将捕获到的ex.Message和ex.InnerException完整内容打印出来,根据具体提示定位问题(比如路由未找到、浏览器阻止导航等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:37:09