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

ASP.NET Core项目单次导航后路由异常跳转问题咨询

问题原因分析
  • 路由相对解析异常:你当前使用无参数的RedirectToPage()方法,默认会基于当前请求的上下文路径做相对路径解析,你的页面位于Identity区域下的/Account/Manage/Community/嵌套目录下,第二次请求时上下文路径解析错误,重复拼接了Community路径段,导致最终解析出来的页面路径不存在。
  • 页面路由未显式声明:你的Opinion.cshtml中@page指令没有指定固定路由模板,Razor Pages路由系统未匹配到对应页面时,会将待跳转的页面路径编码后作为page查询参数拼接在URL后,路径中的/就会被转义为%2F。
  • 表单提交地址未显式指定:表单没有加asp-page、asp-area属性,第二次提交时表单action地址解析错误,提交到了错误的路由上下文,进一步加剧了路径解析异常。
解决方案

按顺序修改以下几个位置即可:

  1. 替换RedirectToPage()为显式指定绝对路径和区域的写法,修改Opinion.cshtml.cs中OnPost方法的返回逻辑:
// 原来的 return RedirectToPage(); 替换为下面的代码
return RedirectToPage("/Account/Manage/Community/Opinion", new { area = "Identity" });
  1. 给Opinion.cshtml的@page指令显式指定固定路由:
// 原来的 @page 替换为下面的代码
@page "/Identity/Account/Manage/Community/Opinion"
  1. 给表单标签加上显式的提交地址属性,避免上下文解析错误:
<!-- 原来的<form id="opinion-form" method="post"> 替换为下面的代码 -->
<form id="opinion-form" method="post" asp-page="/Account/Manage/Community/Opinion" asp-area="Identity">

修改完成后所有路由都会按显式声明的地址解析,不会再出现路径重复拼接、转义为查询参数的问题。

内容的提问来源于stack exchange,提问作者bara'a ageel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:36:03