如何正确生成 link 到不随路由参数变化的剃刀页面

How to properly generate link to razor page that doesn't change with route parameters

我是 razor 页面的新手,显然一定遗漏了一些东西,但对于我来说,我无法弄清楚如何为不会神奇改变的 razor 页面生成 link 并且包括可选的路由参数 - 如果我在该页面上。

我认为这个问题源于 link 问题是在始终位于页面上的导航菜单中 - 即使我在有问题的页面上也是如此。

具体来说,我的页面是 /Customer/Invoices。我在菜单中有一个 link,我尝试通过 asp-page 标签助手、Url.Page 等生成它。当我在应用程序中的任何位置时它都能完美运行,甚至在有问题的页面上,只要我没有任何路由参数。如果我使用路由参数访问页面,那么那个菜单 link 神奇地也有它。

回顾一下,如果我浏览到.../Customer/Invoices - link 即使我在页面上也没有问题。 如果我浏览到 .../Customer/Invoices/123 - 菜单中的 link 突然 最后有 123 路由参数。

我只想要没有可选路由参数的静态页面 url - 不管我是否在带有路由参数的相关页面上。我必须遗漏一些东西...

如有任何帮助,我们将不胜感激。

首先,.net core tag helper 会生成url with route parameters is by design.If 你想删除路由 parameters.Here 两种解决方法。

1.set <a> 中的空路由参数 tag.Here 是一个演示:

页数(Test1/Test):

@page "{id?}"
<a asp-page="Test" asp-route-id="1">link1</a>
<a asp-page="Test" asp-route-id="">link2</a>

结果:

2.use href 替换 <a> 标签:

页数(Test1/Test):

@page "{id?}"
<a asp-page="Test" asp-route-id="1">link1</a>
<a href="/Test1/Test">link2</a>

结果: