从应用程序路径生成域特定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);
有没有更简单的方法来实现这一点。。?
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;
}
}