【问题标题】:Define a required path parameter in the middle of a route using Razor Pages?使用 Razor Pages 在路由中间定义所需的路径参数?
【发布时间】:2021-09-19 12:39:19
【问题描述】:

在 Razor 页面中,我有以下文件夹结构:

  • 区域
        • Jobs.cshtml
        • Index.cshtml

Index.cshtml 页面需要将人员的 ID 作为路径参数包含在内。我在 cshtml 文件中定义了必要的 @page 指令。网址如下所示:

www.website.com/people/person/24

如何使用@page 指令将 Jobs 页面定义为以下路由?

www.website.com/people/person/24/jobs

换句话说,我怎么能做这样的事情,其中​​ pageName 解析为“工作”

@page "{personId}/{page}"

使用保留的 {page} 路由模板最终会返回一个编码路由,而不仅仅是页面名称:

24/%2FPerson%2F/Jobs

【问题讨论】:

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


    【解决方案1】:

    您可以应用一个路由模板来覆盖路由系统生成的默认模板,方法是在其前面加上正斜杠/

    @page "/people/person/{personId:int}/jobs"

    请看这里:https://www.learnrazorpages.com/razor-pages/routing#override-routes

    顺便说一句,我会完全避免在 Razor Pages 应用程序中使用区域。您只需将子文件夹添加到 Pages 文件夹即可获得相同的路由优势,而不会增加区域的额外复杂性。

    【讨论】:

      猜你喜欢
      • 2018-07-07
      • 1970-01-01
      • 2018-12-05
      • 2018-07-18
      • 2019-07-02
      • 2022-12-05
      • 1970-01-01
      • 2020-03-24
      • 2022-07-14
      相关资源
      最近更新 更多