asp.net - Razor Pages ASP.Net Core 2.0 Routing - URL 中间是否可以有参数?

标签 asp.net razor url-routing asp.net-core-2.0

是否可以在 Razor 页面的 URL 中间有一个参数?

例子:

文件结构:

  • /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/

相关文章:

c# - 如何在 C#.NET 3.5 中检查对象是否为空?

asp.net-mvc - NuGet将恶意行添加到web.config MVC4

javascript - url 路由中的 ":op?"是什么意思?

javascript - 如何保护 Node webkit 应用程序上的字体?

asp.net - 多态性——覆盖和重载

c# - 应用程序生命周期的单个 HttpClient - 这个 HttpClient 的单个实例如何确保它响应了正确的请求?

asp.net - 使用 ELMAH 记录 WCF 服务的异常

asp.net-mvc-4 - 使用 MVC Razor 进行输入清理 - 如何安全?

asp.net-mvc - ASP.NET MVC Razor 中的默认单选按钮列表

asp.net-mvc - 数据库驱动的 asp.net MVC 应用程序