我正在开发一个.NET Core2.1RazorPages应用程序,不知道为什么路由器不符合我的期望。在我的应用程序中,业务流程对象有一个规则对象集合。使用Guid在DB上查询业务流程。
我在编排文件夹中的Index.cshtml看起来像
@page "{id:guid}"
@model Website.Pages.Orchestration.OrchestrationModel不出所料,localhost/Orchestration/{guid}路由到正确的页面。
我的目标是localhost/Orchestration/{guid}/rule/{ruleId}/edit点击规则文件夹中的Edit.cshtml。我的尝试是接近的,但是.NET正在匹配Orchestration/rule而不是Orchestration/{guid}/rule。我尝试过几个咒语,试图将{orchestrationid}/{id}添加到规则目录中的Edit.cshtml中,但它不起作用。这似乎是可能的,我很感激对我所缺少的一切的任何帮助。
注规则/Index.cshtml已重命名为Edit
Edit.cshtml文件看起来像
@page "{id}"
@model Website.Pages.Orchestration.Rule.RuleModel不起作用的部分是试图访问子路由

发布于 2019-02-13 10:26:11
实际上,您要做的是覆盖默认的路由系统,该系统依赖于将URL与文件路径匹配。您可以通过将覆盖路由模板指定为@page指令的一部分来实现这一点。覆盖路由模板的前缀是选项倾斜(~)和正斜杠,因此以下内容应该适用于您:
@page "/Orchestration/{id:guid}/rule/{ruleId:int}/edit"https://stackoverflow.com/questions/54640942
复制相似问题