访问 Razor 页面路由数据

Accessing Razor Page Route Data

我想获取 razor 页面的路由数据,以便根据所请求的 razor 页面在 app.use 中进行一些处理。如何获取正在提供的剃刀页面的 name/action。在 MVC 中,我使用 context.Request.RouteValues 访问控制器和操作方法。在使用 razor pages 时,您能否指导我进行等效操作。 提前致谢

Razor 页面中没有 controller/action。如果你想访问路由数据,你可以使用:

var datas = RouteData.Values;

//get page name/path 

var path  = RouteData.Values["page"];

如果您有路由数据参数,这些参数在路由模板中定义为 @page 的一部分:

@page "{title}"

您可以获得如下值:

var title = RouteData.Values["title"];

此外,您还可以从 HttpContext 获取页面 name/path :

var path = HttpContext.Request.Path;

如果您有重定向的处理程序 url,例如:

<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"];