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

ASP.NET Core 2:如何从区域内页面导航至根目录首页

解决ASP.NET Core 2区域内页面跳转根目录首页的问题

在Razor Pages的区域(Areas)环境下,默认的路由上下文会带上当前区域的前缀,这就是你之前的写法总是指向当前区域根目录的原因。试试下面这两种有效的解决方式:

方法1:使用标签助手明确指定空区域

直接利用asp-area属性强制指定区域为空,这样路由就会忽略当前区域上下文,指向根目录的Index页面:

<form asp-page="Index" asp-area="" method="post"></form>

这是Razor Pages标签助手的标准用法,asp-area=""会覆盖当前页面的区域上下文,确保路由解析到根目录下的/Pages/Index.cshtml。

方法2:通过Url.Page方法生成正确路径

如果你更倾向于使用Url辅助方法,记得在参数中指定area为空:

<form asp-page="@Url.Page("Index", new { area = "" })" method="post"></form>

Url.Page方法会根据你指定的区域参数生成准确的路由路径,避免被当前区域上下文干扰。

为什么之前的写法无效?

你之前尝试的@Url.Content("~/Index")其实本身是正确的根路径,但和asp-page标签助手结合时,标签助手可能会优先基于当前区域上下文重新解析路由,导致路径被覆盖。而直接写asp-page="/Index"时,Razor Pages会尝试在当前区域下查找Index页面(如果存在的话),找不到的话也可能因为路由优先级问题无法正确指向根目录。

另外要确认你的根目录首页确实位于项目根目录的Pages文件夹下(即/Pages/Index.cshtml),且没有给该页面添加[Area]特性,确保它的路由是默认的根路径。

内容的提问来源于stack exchange,提问作者DreamTeK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:16:00