URL-адрес корневого сайта ASP - PullRequest
2 голосов
/ 02 апреля 2012

Извините за вопрос, который уже задавался несколько раз и на других форумах, но я действительно не нашел решения, которое дает то, что мне нужно.

У меня есть сайт ASP.NET MVC.И в одном из контроллеров мне нужно найти корневой URL-адрес сайта (например, http://myhost:7777/MyVirtualDir/). Мне нужно, как есть, а не относительные URL-адреса - только полный абсолютный ROOT URL-адрес сайта. Причина в том, что ябудет использовать этот URL из другого приложения для доступа к сервису, размещенному на сайте. Я перепробовал много разных вариантов и предложенных решений с других форумов, включая:

VirtualPathUtility.ToAbsolute("~") // Returns "/" - it returns relative url
Url.Content("~")  //Returns "/MyVirtualDir/" - only virtual directory path part

и все другие относительные пути возврата ToAbsolute.

Я изобрел следующее :

Request.Url.ToString().Substring(0, Request.Url.ToString().Length - Request.Url.PathAndQuery.Length + Url.Content("~").Length);

Похоже, это работает . Но здесь слишком много магии. Есть ли нормальный способполучить такой путь ?

1 Ответ

7 голосов
/ 03 апреля 2012

Насколько я могу судить, нет встроенных функций, позволяющих специально захватить корень приложения с виртуальными путями за один вызов.Самое простое решение, которое я могу найти, это:

Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath

Вы также можете найти это полезным: http://www.west -wind.com / weblog / posts / 2009 / Dec / 21 / Making-Sense-из-ASPNET-Дорожки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...