J'ai ceci:
<li><a href="/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 exemple /Users/Details
et je clique sur ce lien, il me redirige vers /Users/Index
.
Comment puis-je obtenir le chemin correct dans href
quelle que soit ma position actuelle sur le site?
Vous pouvez y parvenir de plusieurs façons. Vous pouvez faire ce qui suit:
<li>
@Html.ActionLink("Clients", "Index", "User", new { @class = "elements" }, null)
</li>
ou ca:
<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 le port que vous utilisez) à ajouter à la structure de l'URL comme:
http://localhost:10000/Users
J'espère que ça aide.
que diriez-vous
<li>
<a href="@Url.Action("Index", "Users")" class="elements"><span>Clients</span></a>
</li>
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 pour un autre contrôleur, vous pouvez écrire ceci
<li><a href="../newController/Index" class="elements"><span>Clients</span></a></li>
Essayez ce qui suit:
<a asp-controller="Users" asp-action="Index"></a>
(Valable pour ASP.NET 5 et MVC 6)
Ici '~' fait référence au répertoire racine, où Home est contrôleur et Download_Excel_File est actionmethod
<a href="~/Home/Download_Excel_File" />
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 Home
is le nom du contrôleur
Si vous utilisez ASP.NET Core, vous pouvez ajuster la réponse acceptée à:
<a href="@Url.Action("Index", null, new { area = string.Empty, controller = "User" }, @Context.Request.Scheme)">
<span>Clients</span>
</a>
en remplaçant @Request.Url.Scheme
.__ par @Context.Request.Scheme