从应用程序路径生成域特定url的最简单方法是什么.

本文关键字:url 最简单 方法 是什么 路径 应用程序 | 更新日期: 2023-09-27 18:20:18

我有特定于应用程序的url,如下面的

~/Default.aspx
~/Manage/Page.aspx
~/Manage/Account/Default.aspx

我真的不知道这些路到底叫什么。

现在我需要它们转换为特定于域的完整URL。URL中没有类似../../../的内容。我想要像这样的URL

http://www.example.com/Default.aspx
http://www.example.com/Manage/Page.aspx
http://www.example.com/Manage/Account/Default.aspx

目前我正在用以下方式(假设我有HttpRequest对象)

Request.Url.Host + path.Substring(1);

有没有更简单的方法来实现这一点。。?

从应用程序路径生成域特定url的最简单方法是什么.

string relative = "~/Manage/Account/Default.aspx";
string absoluteUrl = new Uri(Request.Url, VirtualPathUtility.ToAbsolute(relative)).AbsoluteUri;

另一种方法是在应用程序中定义域设置,如

<add name="WebsiteURL" value="http://www.example.com/"/>

现在,在你的c#代码中,只需像一样在你的ASPX中布线即可

<%=Config.WebsiteURL %>Default.aspx
<%=Config.WebsiteURL %>Manage/Page.aspx

我从Darin的解决方案中设计了以下静态方法。现在我可以像Utilities.GetAbsoluteURL("~/abc/xyz")一样简单地使用它了。

public static class Utilities
{
    public static string GetAbsoluteURL(string relativePath)
    {
        return new Uri(HttpContext.Current.Request.Url, VirtualPathUtility.ToAbsolute(relativePath)).AbsoluteUri;
    }
}