У меня есть это:
<li><a href="/Users/Index)" class="elements"><span>Clients</span></a></li>
Что отлично работает. Но если я уже на этой странице или на контроллере, например, /Users/Details
и нажимаю на эту ссылку, она меня перенаправляет /Users/Index
.
Как я могу получить правильный путь href
независимо от моего текущего положения на сайте?
asp.net
asp.net-mvc
asp.net-mvc-4
razor
href
Запнологика
источник
источник
Ответы:
Есть несколько способов добиться этого. Вы можете сделать следующее:
<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
Надеюсь, это поможет.
источник
как насчет
<li> <a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a> </li>
источник
Попробуйте следующее:
<a asp-controller="Users" asp-action="Index"></a>
(Действительно для ASP.NET 5 и MVC 6)
источник
Здесь '~' относится к корневому каталогу, где Home - это контроллер, а Download_Excel_File - метод действия.
<a href="~/Home/Download_Excel_File" />
источник
Вы можете изменить с помощью следующих
<li><a href="./Index" class="elements"><span>Clients</span></a></li>
Дополнительная точка означает, что вы находитесь в одном контроллере. Если вы хотите изменить контроллер на другой контроллер, вы можете написать это
<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
источник
Вы также можете использовать эту очень упрощенную форму:
@Html.ActionLink("Come back to Home", "Index", "Home")
Где:
Come back to Home
текст, который будет отображаться на страницеIndex
, имяHome
представления, имя контроллера.источник
Если вы используете 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
источник