ASP MVC href到控制器/视图

Zap*_*ica 84 asp.net asp.net-mvc href razor asp.net-mvc-4

我有这个:

<li><a href="/Users/Index)" class="elements"><span>Clients</span></a></li>
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但是,如果我已经在这个页面或控制器上,例如/Users/Details我单击此链接,它会重定向到我/Users/Index.

href无论我目前在网站上的位置如何,我怎样才能获得正确的路径?

Bre*_*ogt 164

有几种方法可以实现这一目标.您可以执行以下操作:

<li>
     @Html.ActionLink("Clients", "Index", "User", new { @class = "elements" }, null)
</li>
Run Code Online (Sandbox Code Playgroud)

或这个:

<li>
     <a href="@Url.Action("Index", "Users")" class="elements">
          <span>Clients</span>
     </a>
</li>
Run Code Online (Sandbox Code Playgroud)

最近我做了以下几点:

<a href="@Url.Action("Index", null, new { area = string.Empty, controller = "User" }, Request.Url.Scheme)">
     <span>Clients</span>
</a>
Run Code Online (Sandbox Code Playgroud)

结果将http://localhost/10000(或使用您正在使用的任何端口)附加到URL结构,如:

http://localhost:10000/Users
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.


Fos*_*erZ 18

怎么样

<li>
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a>
</li>
Run Code Online (Sandbox Code Playgroud)


小智 5

请尝试以下操作:

<a asp-controller="Users" asp-action="Index"></a>
Run Code Online (Sandbox Code Playgroud)

(对ASP.NET 5和MVC 6有效)

  • 仅对 ASP.NET 5 即 MVC 6 有效 (2认同)

rks*_*jib 5

您可以使用以下内容进行修改

<li><a href="./Index" class="elements"><span>Clients</span></a></li>
Run Code Online (Sandbox Code Playgroud)

额外的点意味着您在同一个控制器中.如果要将控制器更改为其他控制器,则可以编写此控制器

<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
Run Code Online (Sandbox Code Playgroud)


小智 5

这里的“〜”是指根目录,其中Home是控制器,而Download_Excel_File是actionmethod

 <a href="~/Home/Download_Excel_File" />
Run Code Online (Sandbox Code Playgroud)