使用 Razor Pages 在路由中间定义所需的路径参数?
Posted
技术标签:
【中文标题】使用 Razor Pages 在路由中间定义所需的路径参数?【英文标题】:Define a required path parameter in the middle of a route using Razor Pages? 【发布时间】:2021-09-19 12:39:19 【问题描述】:在 Razor 页面中,我有以下文件夹结构:
区域 人 人 Jobs.cshtml Index.cshtmlIndex.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
【问题讨论】:
【参考方案1】:您可以应用一个路由模板来覆盖路由系统生成的默认模板,方法是在其前面加上正斜杠/
:
@page "/people/person/personId:int/jobs"
请看这里:https://www.learnrazorpages.com/razor-pages/routing#override-routes
顺便说一句,我会完全避免在 Razor Pages 应用程序中使用区域。您只需将子文件夹添加到 Pages 文件夹即可获得相同的路由优势,而不会增加区域的额外复杂性。
【讨论】:
以上是关于使用 Razor Pages 在路由中间定义所需的路径参数?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 2.2 Razor 页面中的自定义路由
带有 id 的 asp.net core 2 razor pages 路由
ASP.NET Core Razor Pages 强制 Anchor Tag Helper (asp-page) 使用小写路由