Entschuldigung für die Frage, die bereits einige Male und in anderen Foren gefragt wird, aber ich habe wirklich keine Lösung gefunden, die gibt, was ich brauche.ASP Site root url
Ich habe eine ASP.NET MVC-Site. Und in einem der Controller muss ich die Root-URL der Website finden (zum Beispiel http://myhost:7777/MyVirtualDir/). Ich brauche es wie es ist, keine relativen URLs - nur vollständige absolute ROOT-URL der Website. Der Grund ist, dass ich diese URL von einer anderen Anwendung aus verwenden werde, um auf den vor Ort gehosteten Dienst zuzugreifen. Ich habe versucht, viele dirrerent Varianten und Lösungsvorschläge aus anderen Foren, zB:
VirtualPathUtility.ToAbsolute("~") // Returns "/" - it returns relative url
Url.Content("~") //Returns "/MyVirtualDir/" - only virtual directory path part
und alle anderen ToAbsolute zurückkehren relative Pfade.
erfand ich folgendes:
Request.Url.ToString().Substring(0, Request.Url.ToString().Length - Request.Url.PathAndQuery.Length + Url.Content("~").Length);
Sieht aus wie es funktioniert. Aber hier ist zu viel Magie. Gibt es einen normalen Weg, um einen solchen Pfad zu finden?
Also, was mit dieser Lösung nicht in Ordnung war: http://stackoverflow.com/questions/9121140/cant-get -site-root-url-in-asp-mvc – mellamokb
Keine der bereitgestellten Lösungen dort behandelt virtuellen Verzeichnispfad –
Wenn ich mit meiner eigenen URL der Form 'http://sub.domain.com/virtual/WebPage.aspx getestet ', der Code' String.Format ("{0}: // {1} {2}", Request.Url.Scheme, Request.Url.Authority, Url.Content ("~ /")) 'gibt das genaue Ergebnis zurück Das gleiche Ergebnis wie in Ihrem Codebeispiel. Es sei denn, ich verpasse etwas? – mellamokb