将相对路径转换为完整URL
本文关键字:URL 转换 相对 路径 | 更新日期: 2023-09-27 18:20:50
我的主域是http://redrocksoftware.com.au.我有一个类似/PDF/myfile.PDF 的文件的相对路径
我需要将这个相对路径转换为完整的URL。下面这样的东西。
http://redrocksoftware.com.au/PDF/myfile.pdf
我试过下面的,但没有工作
VirtualPathUtility.ToAbsolute("/PDF/myfile.PDF")
您可以使用Uri类来组合绝对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}
以下扩展方法对我有效:
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。
您可以使用
string FullUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + "/PDF/MyFile.pdf"
它在asp.net中工作,我不确定MVC,但它也应该工作。
返回新的System.Uri(Page.Request.Url,ResolveClientUrl("~/report/path.aspx").AbsoluteUri