2016-08-22 10 views
3

Ich verwende die folgende in MVC einen Link zu meiner Homepage in meiner Anwendung zu erstellen:Verbindung ohne Slash am Ende

<a href="~/">home</a> 

Leider, wenn diese unter einer App ausgeführt wird, wird dies einen Link wie

erstellen
<a href="/app-name/">home</a> 

Gibt es eine Möglichkeit, diese Verbindung zu der app-name ohne den Schrägstrich (oder ohne nur Hardcodierung der it) zu erstellen?

Unsere Website ist kanonisch, so dass alle URLs mit einem abschließenden Schrägstrich in ihre nicht nachgestellte Schrägstrichversion umgeleitet werden und weil dieser Link einen Schrägstrich enthält, verursacht dies unnötige Redirect-Hops, die unsere SEO-Bewertungen

benachteiligen
+0

ich, ob die URL EndsWith schlage vor, Check („/“) und wenn ja, sammelt das Substring (0 , MyString.Length - 1) –

Antwort

2

Dank dem Kommentar von Lajos Arpad, brachte es mich dazu, in eine andere zu denken, die URL zu erfinden, also dachte ich, wenn ich die VirtualPathUtility.ToAbsolute benutze, könnte ich dann das Ergebnis substring.

Aber mit dem bedeutete folgend Ich habe String muß nicht die URL ich brauchte:

<a href="@VirtualPathUtility.ToAbsolute("~")">Home</a> 
1

der Html.ActionLink Helfer sollte einen Link generieren, die Ihre Anforderungen entsprechen:

@Html.ActionLink("home", "Index", "Home") 

Vorausgesetzt, dass Ihre Homepage ist „Index“ genannt und von dem „Homecontroller“ gemacht.

+1

Leider fügt dies auch den abschließenden Schrägstrich hinzu – Pete

+0

Sieht aus wie das Routing in Ihrer App anders als meine App konfiguriert ist. Ist [RouteCollection.AppendTrailingSlash] (https://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.appendtrailingslash (v = vs.110) .aspx) auf "true" gesetzt? –

+0

Nicht sicher - Ich habe es nicht so eingestellt, es sei denn, die Standardeinstellung ist, dass es wahr ist, dann glaube ich nicht – Pete