我有这个:
<li><a href="/Users/Index)" class="elements"><span>Clients</span></a></li>
哪个工作正常。但是,如果我已经在此页面上或在控制器上,例如/Users/Details
我单击此链接会将我重定向到/Users/Index
。
无论我目前在网站上的位置如何,如何才能在href
中获得正确的路径?
答案 0 :(得分:154)
有几种方法可以实现这一目标。您可以执行以下操作:
<li>
@Html.ActionLink("Clients", "Index", "User", new { @class = "elements" }, null)
</li>
或者这个:
<li>
<a href="@Url.Action("Index", "Users")" class="elements">
<span>Clients</span>
</a>
</li>
最近我做了以下事情:
<a href="@Url.Action("Index", null, new { area = string.Empty, controller = "User" }, Request.Url.Scheme)">
<span>Clients</span>
</a>
结果将http://localhost/10000
(或使用您正在使用的任何端口)附加到URL结构,如:
http://localhost:10000/Users
我希望这会有所帮助。
答案 1 :(得分:15)
怎么样
<li>
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a>
</li>
答案 2 :(得分:5)
您可以使用以下
进行修改<li><a href="./Index" class="elements"><span>Clients</span></a></li>
额外的点意味着您在同一个控制器中。如果要将控制器更改为其他控制器,则可以编写此
<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
答案 3 :(得分:4)
尝试以下方法:
<a asp-controller="Users" asp-action="Index"></a>
(适用于ASP.NET 5和MVC 6)
答案 4 :(得分:4)
这里&#39;〜&#39;指的是根目录,其中Home是控制器,Download_Excel_File是actionmethod
{{1}}
答案 5 :(得分:1)
您也可以使用这种非常简化的形式:
@Html.ActionLink("Come back to Home", "Index", "Home")
其中:
Come back to Home
是将出现在页面上的文字
Index
是视图名称
Home
是控制器名称
答案 6 :(得分:0)
如果使用ASP.NET Core,则可以将接受的答案调整为:
<a href="@Url.Action("Index", null, new { area = string.Empty, controller = "User" }, @Context.Request.Scheme)">
<span>Clients</span>
</a>
替换@Request.Url.Scheme
与@Context.Request.Scheme