ASP MVC href do kontrolera / widoku


95

Mam to:

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

Co działa dobrze. Ale jeśli jestem już na tej stronie lub na kontrolerze np. /Users/DetailsI kliknę w ten link, na który mnie przekierowuje /Users/Index.

Jak mogę uzyskać prawidłową ścieżkę hrefniezależnie od mojej aktualnej pozycji w serwisie?


1
Przejdź przez to ..: codeproject.com/Tips/583469/…
Ravi Mehta

Odpowiedzi:


180

Można to osiągnąć na kilka sposobów. Możesz wykonać następujące czynności:

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

albo to:

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

Ostatnio wykonuję następujące czynności:

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

Wynik powinien http://localhost/10000zostać dołączony (lub z dowolnym portem, którego używasz) do struktury adresu URL, na przykład:

http://localhost:10000/Users

Mam nadzieję, że to pomoże.


18

Co powiesz na

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

8

Spróbuj wykonać następujące czynności:

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

(Obowiązuje dla ASP.NET 5 i MVC 6)


Nie dotyczy ASP.NET. Może dotyczy starych stron ASP.
Zanon

2
Ważne tylko dla ASP.NET 5 tj. MVC 6
Ifeanyi Chukwu

6

Tutaj „~” odnosi się do katalogu głównego, gdzie Home to kontroler, a Download_Excel_File to metoda akcji

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

5

Możesz modyfikować w następujący sposób

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

Dodatkowa kropka oznacza, że ​​jesteś w tym samym kontrolerze. Jeśli chcesz zmienić kontroler na inny kontroler, możesz to napisać

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

1
Doskonały kumpel. Pozdrawiam.
Chandan Kumar

1
Miło i łatwo! 10x!
Alex123

3

Możesz także skorzystać z tego bardzo uproszczonego formularza:

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

Gdzie:
Come back to Hometo tekst, który pojawi się na stronie,
Indexto nazwa widoku
Hometo nazwa kontrolera


-1

Jeśli używasz ASP.NET Core, możesz dostosować zaakceptowaną odpowiedź do:

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

zastępując @Request.Url.Scheme z@Context.Request.Scheme

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.