it-swarm.com.de

ASP MVC href zu einem Controller/View

Ich habe das:

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

Was gut funktioniert. Wenn ich mich aber bereits auf dieser Seite oder auf dem Controller befinde, z. /Users/Details und ich klicke auf diesen Link, der mich zu /Users/Index weiterleitet.

Wie kann ich den korrekten Pfad in der href finden, unabhängig von meiner aktuellen Position auf der Website?

74
Zapnologica

Es gibt mehrere Möglichkeiten, dies zu erreichen. Sie können Folgendes tun:

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

oder dieses:

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

In letzter Zeit mache ich Folgendes:

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

Das Ergebnis hätte http://localhost/10000 (oder mit dem von Ihnen verwendeten Port), der an die URL-Struktur angehängt wird, wie:

http://localhost:10000/Users

Ich hoffe das hilft.

149
Brendan Vogt

wie wäre es mit

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

Sie können mit den folgenden Einstellungen ändern

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

Der zusätzliche Punkt bedeutet, dass Sie sich im selben Controller befinden. Wenn Sie den Controller auf einen anderen Controller umstellen möchten, können Sie dies schreiben

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

Versuche Folgendes:

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

(Gültig für ASP.NET 5 und MVC 6)

4
John Schroeder

'~' Bezieht sich hier auf das Stammverzeichnis, wobei Home Controller und Download_Excel_File ActionMethod ist

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

Sie können auch dieses sehr vereinfachte Formular verwenden:

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

Woher : 
Come back to Home ist der Text, der auf der Seite angezeigt wird 
Index ist der Ansichtsname 
Homeist der Controller-Name

Wenn Sie ASP.NET Core verwenden, können Sie die akzeptierte Antwort folgendermaßen anpassen:

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

@Request.Url.Scheme durch @Context.Request.Scheme ersetzen

0
Neil Schurrer