在Razor页面中获取路线值

时间:2018-05-06 18:00:59

标签: razor asp.net-core asp.net-core-2.0 asp.net-routing razor-pages

我想知道如何在Razor Pages(Page.cshtml)中获取路线值。 防爆。 https://localhost:44320/AdminPanel/Admins 如果我使用MVC,我会将这些数据作为

var controller = ViewContext.RouteData.Values["Controller"]; //AdminPanel
var action = ViewContext.RouteData.Values["Action"]; //Admins

如何在Razor页面中获取这些值?

对于任何想要获得它的人,你可以通过以下方式获得:

var fullRoute = ViewContext.RouteData.Values["Page"]; // AdminPanel/Admin

1 个答案:

答案 0 :(得分:1)

假设您的AdminPanel.cshtml文件夹中有一个名为Pages的页面,请在第一行@page之后添加一个参数,如下所示:

@page "{action}"

然后在(AdminPanel.cshtml.cs)后面的代码中,向OnGet方法中添加一个prop和一个参数,如下所示:

private string _action;

public void OnGet(string action) {
  _action = action; //now do whatever you want with it
}

如果要在模型中的cshtml页面上访问它,可以添加一个吸气剂。

注意:执行上述操作将使该页面需要指定一个操作。另外,您还可以通过添加问号(@page "{action?}")并在OnGet(OnGet(string action=""))中设置默认值来使其可选。