如何使用标记帮助程序创建从区域页面到根页面文件夹的链接



我正在使用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页面上放置一个简单的链接,该链接将导航到Order页面(并包括订单ID(。这对于同一文件夹或区域内的页面来说已经足够容易了,甚至可以专门转到一个单独的区域,但这一个给我带来了麻烦。

我意识到这可能很容易进行硬编码,但我希望与项目的其余部分保持一致,并使用标记帮助程序。

我尝试了以下操作,但没有成功:

<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>

渲染的链接具有一个没有值的href属性。

(值得一提的是,asp-route-id部分似乎是正确的。我在同一区域使用了一个asp-page进行测试,它按预期传递了ID。(

有人能指引我朝正确的方向走吗?我一直在阅读我能找到的所有文档,但运气不好。

我犯了一个愚蠢的错误。

事实证明,如果任何参数都不正确,href将无法正确呈现。

在这种情况下,我通过了asp-route-id,但是Order页面的路由是@page {orderNumber}

进行此更改后,链接已成功生成。

<a asp-page="Order" asp-route-orderNumber="@order.Id">Edit Order</a>
↑

最新更新