Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何正确生成指向不包含';t随路线参数变化_Asp.net Core_Razor Pages - Fatal编程技术网

Asp.net core 如何正确生成指向不包含';t随路线参数变化

Asp.net core 如何正确生成指向不包含';t随路线参数变化,asp.net-core,razor-pages,Asp.net Core,Razor Pages,我对razor页面还不熟悉,显然肯定是遗漏了什么,但就我的一生而言,我不知道如何生成指向razor页面的链接,该链接不会神奇地改变,并且包含可选的路由参数——如果我在该页面上的话 我认为这个问题源于相关链接位于导航菜单中,导航菜单始终在页面上,即使我在相关页面上 具体来说,我的页面是/Customer/Invoices。我在菜单中有一个链接,我尝试通过asp页面标记助手、Url.page等生成该链接。当我在应用程序中的任何位置,甚至在相关页面上时,只要我没有任何路由参数,该链接都能完美工作。如果

我对razor页面还不熟悉,显然肯定是遗漏了什么,但就我的一生而言,我不知道如何生成指向razor页面的链接,该链接不会神奇地改变,并且包含可选的路由参数——如果我在该页面上的话

我认为这个问题源于相关链接位于导航菜单中,导航菜单始终在页面上,即使我在相关页面上

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

总而言之,如果我浏览到…/Customer/Invoices,即使我在页面上,链接也可以。 如果我浏览到…/Customer/Invoices/123-菜单中的链接突然在末尾也有123 route参数

我只想要没有可选路由参数的静态页面url——不管我是否在有路由参数的页面上。我肯定错过了什么


任何帮助都将不胜感激。

首先,.net core标记帮助程序将生成带有路由参数的url,这是经过设计的。如果您想删除路由参数,这里有两个解决方案

1.在

2.使用href替换

结果:

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