文件夹的 Razor Pages 中需要路由值
Require route value in Razor Pages for folder
在 ASP.NET Core Razor Pages 中,如何为文件夹设置路由以要求存在特定路由 ID?这是我的文件夹结构:
[Pages]
- Index.cshtml
- GeneralPage.cshtml
- [Company]
- Billing.cshtml
- Manage.cshtml
- Users.cshtml
"Company" 文件夹中的任何页面都应该在页面名称前有一个路由参数 (integer {companyId}
)。以下应该都是有效的请求:
- /索引
- /总页
- /Company/1234/Billing
- /Company/1234/Manage
- /Company/1234/Users
以下应该会失败:
- /Company/Billing
- /Company/Manage
- /Company/Users
AddFolderRouteModelConvention 听起来很有前途,但它的用途对我来说并不明显。
对于实现上述路由的最直接的方法有什么建议吗?
这不是通用解决方案,但适用于上面的简单布局:
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}/");
}
});
在 ASP.NET Core Razor Pages 中,如何为文件夹设置路由以要求存在特定路由 ID?这是我的文件夹结构:
[Pages]
- Index.cshtml
- GeneralPage.cshtml
- [Company]
- Billing.cshtml
- Manage.cshtml
- Users.cshtml
"Company" 文件夹中的任何页面都应该在页面名称前有一个路由参数 (integer {companyId}
)。以下应该都是有效的请求:
- /索引
- /总页
- /Company/1234/Billing
- /Company/1234/Manage
- /Company/1234/Users
以下应该会失败:
- /Company/Billing
- /Company/Manage
- /Company/Users
AddFolderRouteModelConvention 听起来很有前途,但它的用途对我来说并不明显。
对于实现上述路由的最直接的方法有什么建议吗?
这不是通用解决方案,但适用于上面的简单布局:
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}/");
}
});