Razor Pages跨文件夹跳转报错:如何从Index页跳转到Areas下页面?
解决Razor页面跨Area跳转问题
你当前使用~/Areas/Registration/Index的写法不符合Razor页面RedirectToPage的跨Area跳转语法,导致路径解析错误。可以通过以下两种方式修改代码:
方式一:指定Area参数
直接通过匿名对象传递area参数,明确目标区域:
public IActionResult OnPost() { return RedirectToPage("/Index", new { area = "Registration" }); }
这里第一个参数是目标页面在Area内的路径(从Area的Pages文件夹根目录开始,Registration Area下的Index页面路径为/Index),第二个参数指定所属的Area名称。
方式二:使用完整路由名称
如果Registration Area的Index页面默认生成的路由名称为Registration/Index,也可以直接使用该路由名称跳转:
public IActionResult OnPost() { return RedirectToPage("Registration/Index"); }
注意事项
- 确保Registration Area的结构正确,
Index.cshtml需放在Areas/Registration/Pages目录下。 - 确认项目已正确配置Area路由(默认ASP.NET Core模板已包含Area路由配置,若自定义配置需保证
options.Conventions.AddAreaPageRoute相关规则生效)。
内容的提问来源于stack exchange,提问作者inno
相关产品推荐
相关产品推荐

