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

ASP.NET Core Identity注册确认跳转报错:找不到/Index页面

问题原因与解决办法

核心问题

Identity脚手架生成的是MVC Razor Pages代码,而你的Blazor Server应用主页是Razor组件(Index.razor),并非MVC体系的Razor Page(.cshtml文件)。RedirectToPage("/Index")是MVC Razor Pages专属跳转方法,它会寻找名为Index.cshtml的MVC页面,但你的项目里没有这个文件,因此触发“找不到页面”的异常。

直接在浏览器访问/Index能显示内容,是因为Blazor路由系统接管了该路径,返回的是Blazor内置的NotFound组件,和MVC的页面跳转逻辑属于两套完全独立的体系。

解决步骤

  1. 修改RegisterConfirmation.cshtml.cs的跳转代码:
    将原代码中的return RedirectToPage("/Index");替换为以下两种方式之一:

    • 直接重定向到Blazor根路径(推荐):
      return Redirect("/");
      
    • 如果项目中存在带Index动作的MVC HomeController,也可以使用:
      return RedirectToAction("Index", "Home");
      
  2. 检查并统一所有Identity页面的跳转逻辑:
    遍历Identity脚手架生成的所有页面(如Login.cshtml.cs、Register.cshtml.cs、ForgotPassword.cshtml.cs等),找到所有使用RedirectToPage("/Index")的代码,全部替换为上述适配Blazor的重定向方式。

额外说明

无需修改Blazor的路由设置,只要把MVC Identity页面中的跳转逻辑从MVC专属的RedirectToPage改为通用的Redirect或RedirectToAction,就能让跳转逻辑适配Blazor的路由系统。

内容的提问来源于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.24 03:22:47