Я действительно удивлен, что нет нативного метода .NET, чтобы получить абсолютный URL от относительного URL. Я знаю, что это обсуждалось много раз, но никогда не сталкивался с удовлетворительным методом, который справляется с этим хорошо. Можете ли вы помочь точно настроить метод ниже? Что -нибудь еще мне не хватает (предостережения, производительность и т. Д.)? < /P>
public static string GetAbsoluteUrl(string url)
{
//VALIDATE INPUT FOR ALREADY ABSOLUTE URL
if (url.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
|| url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
{
return url;
}
//GET PAGE REFERENCE FOR CONTEXT PROCESSING
Page page = HttpContext.Current.Handler as Page;
//RESOLVE PATH FOR APPLICATION BEFORE PROCESSING
if (url.StartsWith("~/"))
{
url = page.ResolveUrl(url);
}
//BUILD AND RETURN ABSOLUTE URL
return "http://" + page.Request.ServerVariables["SERVER_NAME"] + "/"
+ url.TrimStart('/');
}
Подробнее здесь: https://stackoverflow.com/questions/368 ... red-method