Ответ 1
Это то, что я использую
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Current.Request.ApplicationPath;
Я работаю с .net 4.0 С#.
Я хочу получить URL-адрес от текущего HTTP-запроса, включая любой виртуальный каталог. Так, например (запрос и искомое значение):
http://www.website.com/shop/test.aspx → http://www.website.com/shop/
http://www.website.com/test.aspx → http://www.website.com/
http://website.com/test.aspx → http://website.com/
Как это можно добиться?
Это то, что я использую
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Current.Request.ApplicationPath;
Request.Url должен содержать все, что вам нужно. В этот момент это вопрос проверки строки и того, что вы предпочитаете захватить с нее. Раньше я использовал AbsoluteUri, и он работает.
Этот пример не является доказательством дурака, но вы должны выяснить, что вам нужно от этого:
string Uri = Request.Url.AbsoluteUri;
string Output = Uri.Substring(0, Uri.LastIndexOf('/') + 1 );
Это решение может работать и короче:
string url = (new Uri(Request.Url, ".")).OriginalString;
Это должно работать
Request.Url.OriginalString.Substring(0, Request.Url.OriginalString.LastIndexOf(Request.FilePath.Substring(Request.FilePath.LastIndexOf("/")))) + "/"