使用 Razor Pages 在路由中间定义所需的路径参数?
Define a required path parameter in the middle of a route using Razor Pages?
在 Razor 页面中,我有以下文件夹结构:
- 地区
- 人
- 人
- Jobs.cshtml
- Index.cshtml
Index.cshtml 页面要求将人员的 ID 作为路径参数包含在内。我在 cshtml 文件中定义了必要的 @page 指令。 URL 看起来像这样:
www.website.com/people/person/24
如何使用@page 指令将职位页面定义为以下路由?
www.website.com/people/person/24/jobs
换句话说,我该如何做这样的事情,其中 pageName 解析为“Jobs”
@page "{personId}/{page}"
使用保留的 {page} 路由模板最终返回编码路由而不仅仅是页面名称:
24/%2FPerson%2F/Jobs
您可以应用一个路由模板来覆盖路由系统生成的默认模板,方法是在它前面加上正斜杠 /
:
@page "/people/person/{personId:int}/jobs"
看这里:https://www.learnrazorpages.com/razor-pages/routing#override-routes
顺便说一句,我会完全避免在 Razor Pages 应用程序中使用区域。您只需将子文件夹添加到 Pages 文件夹即可获得相同的路由优势,而不会增加区域所带来的额外复杂性。
在 Razor 页面中,我有以下文件夹结构:
- 地区
- 人
- 人
- Jobs.cshtml
- Index.cshtml
- 人
- 人
Index.cshtml 页面要求将人员的 ID 作为路径参数包含在内。我在 cshtml 文件中定义了必要的 @page 指令。 URL 看起来像这样:
www.website.com/people/person/24
如何使用@page 指令将职位页面定义为以下路由?
www.website.com/people/person/24/jobs
换句话说,我该如何做这样的事情,其中 pageName 解析为“Jobs”
@page "{personId}/{page}"
使用保留的 {page} 路由模板最终返回编码路由而不仅仅是页面名称:
24/%2FPerson%2F/Jobs
您可以应用一个路由模板来覆盖路由系统生成的默认模板,方法是在它前面加上正斜杠 /
:
@page "/people/person/{personId:int}/jobs"
看这里:https://www.learnrazorpages.com/razor-pages/routing#override-routes
顺便说一句,我会完全避免在 Razor Pages 应用程序中使用区域。您只需将子文件夹添加到 Pages 文件夹即可获得相同的路由优势,而不会增加区域所带来的额外复杂性。