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

如何在Razor Pages(Page.cshtml)中获取路由值?

在Razor Pages中获取路由值的方法

你提到在MVC里可以通过ViewContext.RouteData.Values["Controller"]和ViewContext.RouteData.Values["Action"]来获取对应的路由值,在Razor Pages里,路由体系略有不同,这里的核心是Page路由值,而非MVC里的Controller和Action概念。

针对你给出的URL https://localhost:44320/AdminPanel/Admins,在Razor Pages中可以直接通过以下代码获取完整的页面路由:

var fullRoute = ViewContext.RouteData.Values["Page"]; // 返回结果为 "AdminPanel/Admins"

如果需要拆分这个路由的各个部分,模拟MVC里Controller和Action的拆分逻辑,可以对返回的字符串做简单处理:

var pageRoute = ViewContext.RouteData.Values["Page"]?.ToString();
if (!string.IsNullOrEmpty(pageRoute))
{
    var routeSegments = pageRoute.Split('/');
    var panelName = routeSegments[0]; // 对应MVC里的"AdminPanel"
    var pageName = routeSegments[1]; // 对应MVC里的"Admins"
}

额外补充:如果你的Razor Pages配置了自定义路由参数(比如/AdminPanel/Admins/123里的123),也可以用同样的方式获取指定参数值,比如路由定义包含{id}时,就可以通过ViewContext.RouteData.Values["id"]拿到对应的值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:36:45