我的主要域名是http://redrocksoftware.com.au。我有一个文件的相对路径,例如 /PDF/myfile.pdf
我需要将此相对路径转换为完整的 URL。如下所示。
http://redrocksoftware.com.au/PDF/myfile.pdf
我在下面试过但没有奏效
VirtualPathUtility.ToAbsolute("/PDF/myfile.pdf")
我的主要域名是http://redrocksoftware.com.au。我有一个文件的相对路径,例如 /PDF/myfile.pdf
我需要将此相对路径转换为完整的 URL。如下所示。
http://redrocksoftware.com.au/PDF/myfile.pdf
我在下面试过但没有奏效
VirtualPathUtility.ToAbsolute("/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。
您可以使用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}
您可以使用
string FullUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + "/PDF/MyFile.pdf"
它在 asp.net 中工作,我不确定 MVC,但它也应该工作。
返回新的 System.Uri(Page.Request.Url, ResolveClientUrl("~/relative/path.aspx")).AbsoluteUri