[英]Razor Pages .NET Core 2.1 Child Routes
我正在開發一個 .NET Core 2.1 Razor Pages 應用程序,但不知道為什么路由器不符合我的期望。 在我的應用程序中,Orchestration 對象具有規則對象的集合。 業務流程定義為在 DB 中使用 Guid 查詢。
我在 Orchestration 文件夾中的 Index.cshtml 看起來像
@page "{id:guid}"
@model Website.Pages.Orchestration.OrchestrationModel
並且可以預見localhost/Orchestration/{guid}
路由到正確的頁面。
我的目標是localhost/Orchestration/{guid}/rule/{ruleId}/edit
以點擊 Rule 文件夾中的 Edit.cshtml。 我的嘗試很接近,但 .NET 匹配Orchestration/rule
而不是Orchestration/{guid}/rule
。 我嘗試了幾種咒語,試圖將{orchestrationid}/{id}
到 Rule 目錄中的 Edit.cshtml 中,但它不起作用。 這似乎是可能的,我感謝對我遺漏的任何幫助。
注意 rule/Index.cshtml 已重命名為 Edit
Edit.cshtml 文件看起來像
@page "{id}"
@model Website.Pages.Orchestration.Rule.RuleModel
不起作用的部分是嘗試訪問子路由
您真正想要做的是覆蓋依賴於將 URL 匹配到文件路徑的默認路由系統。 您可以通過將覆蓋路由模板指定為@page
指令的一部分來完成此@page
。 覆蓋路由模板以選項波浪號 ( ~
) 和正斜杠為前綴,因此以下內容應該適合您:
@page "/Orchestration/{id:guid}/rule/{ruleId:int}/edit"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.