100

我有这个:

<li><a href="/Users/Index)" class="elements"><span>Clients</span></a></li>

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

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

4

8 回答 8

187

有几种方法可以实现这一点。您可以执行以下操作:

<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

我希望这有帮助。

于 2013-07-16T08:08:37.747 回答
20

怎么样

<li>
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a>
</li>
于 2013-07-16T08:03:13.287 回答
9

尝试以下操作:

<a asp-controller="Users" asp-action="Index"></a>

(适用于 ASP.NET 5 和 MVC 6)

于 2015-06-02T01:47:35.283 回答
6

这里 '~' 指的是根目录,其中 Home 是控制器,Download_Excel_File 是 actionmethod

 <a href="~/Home/Download_Excel_File" />
于 2017-07-17T07:19:59.237 回答
5

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

<li><a href="./Index" class="elements"><span>Clients</span></a></li>

额外的点表示您在同一个控制器中。如果您想将控制器更改为不同的控制器,那么您可以这样写

<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
于 2015-06-05T04:58:07.233 回答
3

您还可以使用这种非常简化的形式:

@Html.ActionLink("Come back to Home", "Index", "Home")

其中:
Come back to Home是页面上将出现的文本
Index是视图名称
Home是控制器名称

于 2017-11-09T02:14:47.560 回答
0

如果您想使用一种模式进行创建和更新您也可以这样做

C#

onclick="showInPopup('@Url.Action("CreateOrUpdate","Request",null,Context.Request.Scheme)','Create Request')"


onclick="showInPopup('@Url.Action("CreateOrUpdate","Request",new{id = item.id },Context.Request.Scheme)','Edit Request')"

JS

showInPopup = (url, title) => {
    $.ajax({
        type: "GET",
        url: url,
        success: function (res) {
            $("#form-modal .modal-body").html(res);
            $("#form-modal .modal-title").html(title);
            $("#form-modal").modal('show');
        }
    })
}
于 2021-09-20T07:19:06.743 回答
-1

如果使用 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

于 2019-01-23T17:31:38.867 回答