在 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
我在默认的 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