0

我有应用程序特定的网址,如下所示

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

我真的不知道这些路径实际上叫什么。

现在我需要它们转换为特定于域的完整 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);

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

4

3 回答 3

1
string relative = "~/Manage/Account/Default.aspx";
string absoluteUrl = new Uri(Request.Url, VirtualPathUtility.ToAbsolute(relative)).AbsoluteUri;
于 2013-06-29T09:21:32.647 回答
1

另一种方法是在应用设置中定义您的域,例如

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

现在在你的 c# 代码中,就像在你的 ASPX 中一样

<%=Config.WebsiteURL %>Default.aspx
<%=Config.WebsiteURL %>Manage/Page.aspx
于 2013-06-29T10:19:21.917 回答
0

我从 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;
    }
}
于 2013-06-29T11:29:50.843 回答