是否可以在 asp-route-{value} 中使用动态值?

Is it possible to use a dynamic value in asp-route-{value}?

我的 Razor 页面使用以下代码来创建一个 link,它在单击时向路由添加动态值。这非常有效。

<a class="page-link" asp-route-systemRightsPage="@(i.Index)">@i.Index</a>

现在,我有不同的路线值,在本例中我使用 systemRightsPage,但我还有 3 种可以导航到的类型(personsPagepersonRightsPage, errorsPage), 依此类推。

是否可以在 asp-route-{value} 部分以某种方式使用动态值? 我试过使用这个:

<a class="page-link" asp-route-@(RouteValue)="@(i.Index)">@i.Index</a>

此代码在 HTML 中正确呈现为:

<a class="page-link" asp-route-personpage="2">2</a>

但是 link 不再起作用,因为如果我点击它什么也不会发生。

有没有人做过类似的事情?

您可以使用 all-route-data 属性传递任意参数名称及其值:

@{var values = new Dictionary<string,string>{{"personpage", "2"}};}

<a asp-page="/whatever" asp-all-route-data="values">Click</a>

https://www.learnrazorpages.com/razor-pages/tag-helpers/anchor-tag-helper