如何匹配 Razor Pages 中的多个路由?
Posted
技术标签:
【中文标题】如何匹配 Razor Pages 中的多个路由?【英文标题】:How to match multiple routes in Razor Pages? 【发布时间】:2022-01-07 19:41:39 【问题描述】:我需要为两个不同的 URL 显示一个表单:
/customer/edit/15
或
/customer/edit/sales/john
我想为他们两个显示相同的表格。要么提供客户 ID,要么提供部门名称和员工姓名。
如何在我的页面路由中实现这一点?
我已经有了这个:
@page /customer/action/id?:long
【问题讨论】:
【参考方案1】:您可以尝试使用options.Conventions.AddPageRoute
。
这是一个演示:
页面/客户/Edit.cshtml:
@page "/customer/edit/id:long"
@model RazorPageDemo.Pages.Customer.EditModel
@
<h1>edit</h1>
Startup.cs:
public void ConfigureServices(IServiceCollection services)
...
services
.AddRazorPages()
.AddRazorPagesOptions(options =>
options.Conventions.AddPageRoute("/customer/edit", "/customer/edit/department/employee");
);
结果:
【讨论】:
以上是关于如何匹配 Razor Pages 中的多个路由?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Razor Pages 在路由中间定义所需的路径参数?
ASP.NET Core Razor Pages 强制 Anchor Tag Helper (asp-page) 使用小写路由