ASP MVC href для контроллера/просмотра
У меня есть это:
<li><a href="/Users/Index)" class="elements"><span>Clients</span></a></li>
Что отлично работает. Но если я уже на этой странице или на контроллере, например. /Users/Details
, и я нажимаю на эту ссылку, она перенаправляет меня на /Users/Index
.
Как я могу получить правильный путь в href
независимо от моей текущей позиции на сайте?
Ответы
Ответ 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