剃刀页面ASP.Net Core 2.0路由-URL中间是否可以包含参数?

use*_*080 3 asp.net url-routing razor asp.net-core-2.0

Razor Page的URL中间是否可以有一个参数?

例:

档案结构:

  • / products / Index <---显示产品列表
  • /产品/产品/索引<-产品页面
  • /产品/产品/页1
  • /产品/产品/第2页
  • /产品/产品/配件清单/索引
  • /产品/产品/配件清单/详细信息

我可以为产品列表创建路由,但是无法使用options.Conventions.AddPageRoute找出URL中间的参数

谢谢

ani*_*ina 6

您可以按照与控制器路由相同的方式添加约定并使用参数。

 options.Conventions.AddPageRoute("/Products", "products/{id}/details")
 options.Conventions.AddPageRoute("/Products", "products/{id}/listofaccesories")
Run Code Online (Sandbox Code Playgroud)

或更一般的方式

 options.Conventions.AddPageRoute("/Products", "products/{id}/{handler}")
Run Code Online (Sandbox Code Playgroud)

{}处理程序的参数将被剃刀页面引擎可以用来寻找映射这条路线的方法。这两个配置会将url / products / 20120 / details路由到ProductsModel页面,以20120作为id参数并在中选择Details处理程序ProductsModel

public ProductsModel : PageModel
{
    ...

   public Task OnGetDetails(int id)
    {
    ...
    }

    public Task OnGetListOfAccessories(int id)
    {
       ...
    }

   ...
}
Run Code Online (Sandbox Code Playgroud)