【问题标题】:Require route value in Razor Pages for folder需要 Razor Pages 中文件夹的路由值
【发布时间】:2019-07-02 01:16:00
【问题描述】:

在 ASP.NET Core Razor 页面中,如何为文件夹设置路由以要求存在特定的路由 ID?这是我的文件夹结构:

[Pages]
 - Index.cshtml
 - GeneralPage.cshtml
 - [Company]
    - Billing.cshtml
    - Manage.cshtml
    - Users.cshtml

“公司”文件夹中的任何页面都应在页面名称前有一个路由参数 (integer {companyId})。以下都应该是有效的请求:

  • /索引
  • /GeneralPage
  • /Company/1234/计费
  • /公司/1234/管理
  • /公司/1234/用户

以下应该失败:

  • /公司/计费
  • /公司/管理
  • /公司/用户

AddFolderRouteModelConvention 听起来很有希望,但它的用途对我来说并不明显。

对实现上述路由的最直接方法有何建议?

【问题讨论】:

    标签: asp.net-mvc asp.net-core razor-pages


    【解决方案1】:

    这不是一个通用的解决方案,但适用于上面的简单布局:

    options.Conventions.AddFolderRouteModelConvention("/Company", model =>
    {
        Regex templatePattern = new Regex("^Company/");
        foreach (var selector in model.Selectors)
        {
            selector.AttributeRouteModel.Template =
                templatePattern.Replace(selector.AttributeRouteModel.Template, "Company/{companyId}/");
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 2020-03-24
      • 2018-07-18
      • 2019-07-05
      • 2021-09-19
      • 2019-01-29
      • 2022-12-05
      • 2022-01-07
      • 2020-02-21
      相关资源
      最近更新 更多