如何使用 Tag Helpers 从区域页面创建 link 到根页面文件夹?
How can I use Tag Helpers to create a link from an Area page, to the root Pages folder?
我正在使用 Razor 页面开发 .NET Core 3.0 项目。结构是这样的:
MySite
/Areas
/Admin
/Pages
- Index.cshtml <--- Insert link on this page...
/Pages
- Order.cshtml <--- ...that navigates to this page
如上所示,我试图在 Admin/Index
页面上放置一个简单的 link,它导航到订单页面(并包含订单 ID)。对于同一文件夹或区域中的页面,甚至专门转到单独的区域,这很容易,但是这个给我带来了麻烦。
我意识到这可能很容易被硬编码,但我想与项目的其余部分保持一致并使用 Tag Helpers。
我已尝试以下操作但无济于事:
<a asp-page="Order" asp-route-id="@order.Id">Edit Order</a>
<a asp-page="/Order" asp-route-id="@order.Id">Edit Order</a>
<a asp-area="/" asp-page="Order" asp-route-id="@order.Id">Edit Order</a>
<a asp-route="~/Pages/Order.cshtml" asp-route-id="@order.Id">Edit Order</a>
呈现的 link 有一个没有值的 href
属性。
(就其价值而言,asp-route-id
部分似乎是正确的。我在同一区域使用了 asp-page
只是为了测试,它按预期传递了 ID。)
任何人都可以引导我朝着正确的方向前进吗?我一直在阅读我能找到的所有文档,但没有任何运气。
我的愚蠢错误。
事实证明,如果 任何 个参数不正确,href
将无法正确呈现。
在本例中,我传递的是 asp-route-id
,但是订单页面的路由是 @page {orderNumber}
。
进行此更改后,link 已成功生成。
<a asp-page="Order" asp-route-orderNumber="@order.Id">Edit Order</a>
↑
我正在使用 Razor 页面开发 .NET Core 3.0 项目。结构是这样的:
MySite
/Areas
/Admin
/Pages
- Index.cshtml <--- Insert link on this page...
/Pages
- Order.cshtml <--- ...that navigates to this page
如上所示,我试图在 Admin/Index
页面上放置一个简单的 link,它导航到订单页面(并包含订单 ID)。对于同一文件夹或区域中的页面,甚至专门转到单独的区域,这很容易,但是这个给我带来了麻烦。
我意识到这可能很容易被硬编码,但我想与项目的其余部分保持一致并使用 Tag Helpers。
我已尝试以下操作但无济于事:
<a asp-page="Order" asp-route-id="@order.Id">Edit Order</a>
<a asp-page="/Order" asp-route-id="@order.Id">Edit Order</a>
<a asp-area="/" asp-page="Order" asp-route-id="@order.Id">Edit Order</a>
<a asp-route="~/Pages/Order.cshtml" asp-route-id="@order.Id">Edit Order</a>
呈现的 link 有一个没有值的 href
属性。
(就其价值而言,asp-route-id
部分似乎是正确的。我在同一区域使用了 asp-page
只是为了测试,它按预期传递了 ID。)
任何人都可以引导我朝着正确的方向前进吗?我一直在阅读我能找到的所有文档,但没有任何运气。
我的愚蠢错误。
事实证明,如果 任何 个参数不正确,href
将无法正确呈现。
在本例中,我传递的是 asp-route-id
,但是订单页面的路由是 @page {orderNumber}
。
进行此更改后,link 已成功生成。
<a asp-page="Order" asp-route-orderNumber="@order.Id">Edit Order</a>
↑