是否可以在 Razor 页面的 URL 中间有一个参数?
例子:
- http://website/products <--- 显示产品列表
- http://website/products/ {productName} - 产品页面
- http://website/products/ {productName}/Page1
- http://website/products/ {productName}/Page2
- http://website/products/ {productName}/ListOfAccessories
- http://website/products/ {productName}/ListOfAccessories/Details
文件结构:
- /products/Index <--- 显示产品列表
- /产品/产品/索引<--产品页面
- /产品/产品/第1页
- /Products/Product/Page2
- /Products/Product/ListOfAccessories/索引
- /Products/Product/ListOfAccessories/Details
我可以为产品列表创建路由,但无法使用 options.Conventions.AddPageRoute
找出 URL 中间的参数谢谢
最佳答案
您可以像在 Controller 路由中一样添加约定和使用参数。
options.Conventions.AddPageRoute("/Products", "products/{id}/details")
options.Conventions.AddPageRoute("/Products", "products/{id}/listofaccesories")
或者更一般的方式
options.Conventions.AddPageRoute("/Products", "products/{id}/{handler}")
{handler} 参数将被 razor 页面引擎用于查找映射此路由的方法。
这两个配置会将 url /products/20120/details 路由到 ProductsModel
页面,将 20120
作为 id
参数并选择 ProductsModel
内的 Details
处理程序。
public ProductsModel : PageModel
{
...
public Task OnGetDetails(int id)
{
...
}
public Task OnGetListOfAccessories(int id)
{
...
}
...
}
关于asp.net - Razor Pages ASP.Net Core 2.0 Routing - URL 中间是否可以有参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845811/