获取最简单的方法是什么:asp.net中的http://www.[Domain].com
?
似乎没有一种方法可以做到这一点,我知道的唯一方法是在服务器变量或Request.Url上做一些字符串杂技。任何人吗?
答案 0 :(得分:3)
我们可以使用Uri和他的baseUri构造函数:
new Uri(this.Request.Url, "/")
代表网站的根new Uri(this.Request.Url, this.Request.ResolveUrl("~/"))
代表网站的根答案 1 :(得分:2)
你可以使用这样的东西。
System.Web.HttpContext.Current.Server.ResolveUrl("~/")
它映射到应用程序的根目录。现在,如果您在虚拟目录中,则需要做更多的工作。
修改强>
旧帖子包含不正确的方法调用!
答案 2 :(得分:2)
你可以这样做:
string.Format("{0}://{1}:{2}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port)
您将获得generic URI syntax< protocol>://< host>:< port>
答案 3 :(得分:2)
我真的很喜欢CMS使用String.Format和Page.Request变量处理这个问题的方式。我只想稍微调整一下。我刚刚在我的一个页面上测试过,所以,我将在这里复制代码:
String baseURL = string.Format(
(Request.Url.Port != 80) ? "{0}://{1}:{2}" : "{0}://{1}",
Request.Url.Scheme,
Request.Url.Host,
Request.Url.Port)
答案 4 :(得分:1)
System.Web.UI.Page.Request.Url
答案 5 :(得分:1)
this.Request.Url.Host
答案 6 :(得分:1)
我在页面上使用此属性来处理案例虚拟目录和默认端口:
string FullApplicationPath {
get {
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0}://{1}", Request.Url.Scheme, Request.Url.Host);
if (!Request.Url.IsDefaultPort)
sb.AppendFormat(":{0}", Request.Url.Port);
if (!string.Equals("/", Request.ApplicationPath))
sb.Append(Request.ApplicationPath);
return sb.ToString();
}
}
答案 7 :(得分:0)
此方法处理http / https,端口号和查询字符串。
'Returns current page URL
Function fullurl() As String
Dim strProtocol, strHost, strPort, strurl, strQueryString As String
strProtocol = Request.ServerVariables("HTTPS")
strPort = Request.ServerVariables("SERVER_PORT")
strHost = Request.ServerVariables("SERVER_NAME")
strurl = Request.ServerVariables("url")
strQueryString = Request.ServerVariables("QUERY_STRING")
If strProtocol = "off" Then
strProtocol = "http://"
Else
strProtocol = "https://"
End If
If strPort <> "80" Then
strPort = ":" & strPort
Else
strPort = ""
End If
If strQueryString.Length > 0 Then
strQueryString = "?" & strQueryString
End If
Return strProtocol & strHost & strPort & strurl & strQueryString
End Function
答案 8 :(得分:0)
我必须处理类似的事情,我需要一种方法来以编程方式将标记设置为指向我的网站根目录。
由于localhost和虚拟目录的原因,已接受的解决方案对我不起作用。
所以我提出了以下解决方案,它适用于带有或不带虚拟目录的localhost,当然也适用于IIS网站。
string.Format("{0}://{1}:{2}{3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, ResolveUrl("~")
答案 9 :(得分:0)
到目前为止,结合我在这个问题上看到的最好的东西,这个照顾:
托管在根
的子文件夹中的应用程序string url = String.Format(
Request.Url.IsDefaultPort ? "{0}://{1}{3}" : "{0}://{1}:{2}{3}",
Request.Url.Scheme, Request.Url.Host,
Request.Url.Port, ResolveUrl("~/"));