Подтвердить что ты не робот

ASP MVC href для контроллера/просмотра

У меня есть это:

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

Что отлично работает. Но если я уже на этой странице или на контроллере, например. /Users/Details, и я нажимаю на эту ссылку, она перенаправляет меня на /Users/Index.

Как я могу получить правильный путь в href независимо от моей текущей позиции на сайте?

4b9b3361

Ответ 1

Есть несколько способов, которыми вы можете это сделать. Вы можете сделать следующее:

<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

Надеюсь, это поможет.

Ответ 2

как насчет

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

Ответ 3

Вы можете изменить следующие

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

Дополнительная точка означает, что вы находитесь на одном контроллере. Если вы хотите изменить контроллер на другой контроллер, вы можете написать это

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

Ответ 4

Попробуйте следующее:

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

(Действительно для ASP.NET 5 и MVC 6)

Ответ 5

Здесь '~' относится к корневому каталогу, где Home является контроллером, а Download_Excel_File - actionmethod

 <a href="~/Home/Download_Excel_File" />

Ответ 6

Вы также можете использовать эту очень упрощенную форму:

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

Где:
Come back to Home - это текст, который появится на странице
Index - это имя вида
Home - имя контроллера

Ответ 7

Если вы используете 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