我的主要域名为http://redrocksoftware.com.au。我有一个文件的相对路径,如/PDF/myfile.pdf
我需要将此相对路径转换为完整的URL。如下所示。
http://redrocksoftware.com.au/PDF/myfile.pdf
我在下面尝试但没有工作
VirtualPathUtility.ToAbsolute( “/ PDF / myfile.pdf”)
答案 0 :(得分:7)
您可以使用Uri Class来组合绝对URI和相对路径:
Uri absolute = new Uri("http://redrocksoftware.com.au/");
Uri result = new Uri(absolute, "/PDF/MyFile.pdf");
// result == {http://redrocksoftware.com.au/PDF/MyFile.pdf}
答案 1 :(得分:6)
您可以使用
string FullUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + "/PDF/MyFile.pdf"
它适用于asp.net,我不确定MVC,但它也应该有用。
答案 2 :(得分:4)
以下扩展方法对我有用:
public static class Extensions
{
/// <summary>
/// Turns a relative URL into a fully qualified URL.
/// (ie http://domain.com/path?query)
/// </summary>
/// <param name="request"></param>
/// <param name="relativeUrl"></param>
/// <returns></returns>
public static string GetFullUrl(this HttpRequest request, string relativeUrl) {
return String.Format("{0}://{1}{2}",
request.Url.Scheme,
request.Url.Authority,
VirtualPathUtility.ToAbsolute(relativeUrl));
}
}
按如下方式使用:
HttpContext.Current.Request.GetFullUrl("~/MyOtherPage.aspx");
也可以使用虚拟目录,而且不需要MVC。
答案 3 :(得分:0)
返回新的System.Uri(Page.Request.Url,ResolveClientUrl(&#34;〜/ relative / path.aspx&#34;))。AbsoluteUri