100 votes

ASP MVC href vers un contrôleur/une vue

J'ai ça :

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

Ce qui fonctionne bien. Mais si je suis déjà sur cette page ou sur le contrôleur, par ex. /Users/Details et que je clique sur ce lien, il me redirige vers /Users/Index .

Comment puis-je obtenir le chemin correct dans le href quelle que soit ma position actuelle sur le site ?

187voto

Brendan Vogt Points 5000

Il y a plusieurs façons d'y parvenir. Vous pouvez faire ce qui suit :

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

ou ceci :

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

Dernièrement, je fais ce qui suit :

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

Le résultat aurait été http://localhost/10000 (ou avec le port que vous utilisez) à ajouter à la structure de l'URL comme :

http://localhost:10000/Users

J'espère que cela vous aidera.

20voto

FosterZ Points 2123

Comment

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

10voto

John Schroeder Points 101

Essayez ce qui suit :

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

Cela fait partie de la nouvelle Système d'aide aux balises d'ancrage pour les pages Razor qui a été introduit dans ASP.NET Core 1.0 .

6voto

faux Points 77

Ici, '~' fait référence au répertoire racine, où Home est le contrôleur et Download_Excel_File est l'actionmethod.

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

5voto

rksajib Points 170

Vous pouvez modifier avec les éléments suivants

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

Le point supplémentaire signifie que vous êtes dans le même contrôleur. Si vous voulez changer le contrôleur pour un autre contrôleur, vous pouvez écrire ceci

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X