ASP MVC href à un contrôleur / vue

J'ai ceci:

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

Qui fonctionne bien. Mais si je suis déjà sur cette page ou sur le contrôleur par exemple /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?

65
demandé sur Brendan Vogt 2013-07-16 12:00:13

6 réponses

Il y a plusieurs façons d'accomplir cela. 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 http://localhost/10000 (ou avec n'importe quel port que vous utilisez) à ajouter à la structure D'URL comme:

http://localhost:10000/Users

J'espère que cela aide.

139
répondu Brendan Vogt 2016-05-16 05:35:51

Que diriez-vous de

<li>
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a>
</li>
13
répondu FosterZ 2013-07-16 08:06:09

Vous pouvez modifier avec ce qui suit

<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 à un contrôleur différent, vous pouvez écrire ceci

<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
4
répondu rksajib 2015-06-05 05:04:40

Essayez ce qui suit:

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

(valable pour ASP.NET 5 et MVC 6)

4
répondu John Schroeder 2016-11-21 14:38:01

Ici ' ~ ' fait référence au répertoire racine, où Home est controller et Download_Excel_File est actionmethod

 <a href="~/Home/Download_Excel_File" />
3
répondu faux 2017-07-17 07:19:59

Vous pouvez également utiliser ce formulaire très simplifié:

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

Où :
Come back to Home est le texte qui apparaîtra sur la page
Index est le nom de la vue
Homeest le nom du contrôleur de

1
répondu Alexandre Neukirchen 2017-11-09 02:14:47