Razor Pages中使用RedirectToPage跳转Identity修改密码页面失败求助
解决Razor Pages中RedirectToPage无法跳转Identity页面的问题
问题原因
Identity默认作为**Razor类库(RCL)**嵌入项目,并非项目内的物理页面,直接使用/Identity/Account/Manage/ChangePassword这种物理路径会找不到页面。
解决方案
1. 使用正确的路由名称跳转
Identity类库中的页面路由不带/Identity前缀,直接使用页面的路由路径即可,同时支持传递参数:
return RedirectToPage("/Account/Manage/ChangePassword", new { /* 这里传入路由参数,比如 userId = 1001 */ });
2. 将Identity页面 scaffolding 到本地项目
如果需要自定义Identity页面或确保路径完全匹配,可将Identity页面生成到项目中:
- 右键项目 → 选择「添加」→「新建搭建基架项」
- 在弹出窗口中选择「Identity」→ 点击「添加」
- 勾选需要生成的页面(比如
ChangePassword),选择对应的数据库上下文,完成生成
生成后,项目中会出现/Identity/Account/Manage文件夹,此时你原来的RedirectToPage("/Identity/Account/Manage/ChangePassword")代码即可正常使用,同时可传递参数。
3. 验证路由配置
确保Program.cs(或Startup.cs)中已正确配置Identity和Razor Pages路由:
// 注册Identity服务 builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores<ApplicationDbContext>(); // 启用Razor Pages路由 app.MapRazorPages();
内容的提问来源于stack exchange,提问作者milad
相关产品推荐
相关产品推荐

