Razor Page中如何从Page1正确重定向到App页面?
解决Razor Page中RedirectToPage不生效的问题
Hey 👋,我来帮你排查这个重定向失效的问题——这是Razor Pages开发里挺常见的坑,大多是因为没正确返回重定向结果或者路径/逻辑分支出了问题,下面是具体的解决步骤:
必须返回RedirectToPage的结果
Razor Page的OnGet方法(同步版返回IActionResult,异步版返回Task<IActionResult>),你不能只调用this.RedirectToPage("/App/App")就完事,必须把这个重定向结果return出去。很多人会忽略这一步,导致方法默认返回Page(),自然不会跳转。正确的写法应该是:public IActionResult OnGet(string parameter1) { // 你的参数校验逻辑 if (string.IsNullOrEmpty(parameter1)) // 举个校验例子 { // 关键:返回重定向结果 return RedirectToPage("/App/App"); } // 校验通过后的正常逻辑 return Page(); }确认目标页面路径的正确性
检查你的目标页面结构是否确实是Pages/App/App.cshtml,这个路径写法是对的,但要注意大小写(本地Windows环境不敏感,但部署到Linux服务器会区分)。另外也可以用页面的Model类型来生成路径,避免手动写路径出错:// 假设App页面的Model类是AppModel return RedirectToPage(typeof(AppModel));验证校验逻辑是否走到了重定向分支
加个断点或者打印日志,确认参数校验的场景确实触发了重定向的代码块。比如如果参数校验没满足跳转条件,那页面自然会停留在Page1。排查是否有拦截重定向的逻辑
看看项目里有没有自定义的页面过滤器(PageFilter)或者中间件,会不会拦截了重定向请求并修改了响应结果。可以暂时注释掉这些自定义逻辑,测试下重定向是否正常生效。
内容的提问来源于stack exchange,提问作者Greg Gum
相关产品推荐
相关产品推荐

