在 Razor 页面中路由数据

Route Data in Razor Pages

我在默认的 Pages 文件夹中有一个 razor 页面调用 "app"。

我可以用 http://myapp.com/app

正常查看此页面

现在我想添加一个路由参数,所以 url 看起来像这样: http:/myapp.com/app/greg

我想从 URL 中提取 greg 并在页面中使用它。

所以我尝试了这个:

HttpGet("app/{name}")]
public void OnGet(string name)
{
    //Do something with name.
}

但是我收到 404 错误。

Razor Pages 似乎不支持属性路由。这最终对我有用。

app.cshtml:

@page "{name}"

app.cshtml.cs:

[BindProperty(SupportsGet = true)]
public string Name{ get; set; }

public void OnGet()
{
     //Do something with this.Name...
}

页面指令创建路由,BindProperty 属性将值绑定到 属性。

如果您想从查询字符串中获取值,请将 @page "{name}" 更改为 @page