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

配置Blazor Server的ASP.NET Core MVC默认路由指向Home控制器Index方法

解决ASP.NET Core 6 MVC + Blazor Server 默认路由指向MVC Home/Index的问题

你的当前配置里已经加了MVC默认路由,但根路径还是跳Blazor页面的话,十有八九是项目里藏了Blazor的回退路由配置(比如MapFallbackToComponent),这玩意会拦截所有没匹配上的路由,包括根路径。

调整端点配置的正确方式:

  • 把MVC的默认路由放在最前面,保证优先级最高
  • 修改Blazor的回退路由,别让它抢根路径的匹配权

改完的代码如下:

app.UseEndpoints(endpoints =>
{
    endpoints.MapRazorPages();
    // MVC默认路由放最前,确保根路径优先匹配Home/Index
    endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapBlazorHub();
    // 只让Blazor处理/blazor前缀下的路由,不影响根路径
    endpoints.MapFallbackToComponent("/blazor/{**catchall}", "App");
});

补充注意点:

  • 如果之前你写过MapFallbackToComponent("{*path}", "App")这种全捕获的配置,必须改成带前缀的,不然根路径还是会被Blazor截走。
  • 确认HomeController的Index方法没问题,对应的Views/Home/Index.cshtml视图文件也得存在。
  • 测试前清下浏览器缓存,避免旧路由缓存搞事情。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:21:57