【发布时间】:2020-05-01 18:08:23
【问题描述】:
我想获取 razor 页面的路由数据,以便在 app.use 中根据请求的 razor 页面进行一些处理。如何获取正在服务的剃须刀页面的名称/操作。在 MVC 中,我使用 context.Request.RouteValues 来访问控制器和操作方法。使用剃须刀页面时,您能否指导我找到等效的方法。 提前致谢
【问题讨论】:
我想获取 razor 页面的路由数据,以便在 app.use 中根据请求的 razor 页面进行一些处理。如何获取正在服务的剃须刀页面的名称/操作。在 MVC 中,我使用 context.Request.RouteValues 来访问控制器和操作方法。使用剃须刀页面时,您能否指导我找到等效的方法。 提前致谢
【问题讨论】:
Razor 页面中没有控制器/动作。如果你想访问路线数据,你可以使用:
var datas = RouteData.Values;
//get page name/path
var path = RouteData.Values["page"];
如果您有路由模板中定义的路由数据参数作为@page 的一部分:
@page "{title}"
你可以得到这样的值:
var title = RouteData.Values["title"];
此外,还可以从 HttpContext 中获取页面名称/路径:
var path = HttpContext.Request.Path;
如果您有处理程序来重定向网址,例如:
<a asp-page="Privacy" asp-page-handler="Menu2" asp-route-id1="p02" asp-route-id2="123">Menu 2</a> |
您可以使用以下方式获取处理程序:
var handler = HttpContext.Request.Query["handler"];
【讨论】: