正在设置href的相对路径



我正在研究RAZOR。

_layout.cshtml包含以下内容作为侧边栏

<a class="sidebar-brand" href="../Purchase/Index">

它打开了https://localhost/Purchase/Index

它适用于任何CSHTML页面。然而,如果我点击编辑页面,我可以看到上面的URL

https://localhost/Purchase/Edit/46

从这个页面,如果我点击购买链接,它会尝试打开

https://localhost/Purchase/Purchase/Index

而不是

https://localhost/Purchase/Index

显然/在这种情况下,Procurment/Index将不起作用。

如何在href内部处理此问题?

在剃刀视图中使用@Url.Action("ActionName","ControllerName")总是一种很好的做法。对于您的情况,应该是

@Url.Action("Index","Purchase")

使用href="/Purchase/Index"href="~/Purchase/Index。顺便说一句,从MVC 4开始,Razor会自动检测以~/开头的属性,并自动插入的@Href@Url调用你

有关其他信息,请参阅以下文章:通过在ASP中使用IIS URL重写,Tilde表示法映射到原始URL。NET网页Razor V3

还有一个额外的帖子:ASP。NET MVC,在相对路径的href属性中使用Tilde

最新更新