在代码隐藏中获取ASP.Net页面的URL
我有一个ASP.Net页面,将托pipe在几个不同的服务器上,我想要获取页面的URL(甚至更好:页面托pipe的网站)作为一个string在代码隐藏。 有任何想法吗?
用这个:
Request.Url.AbsoluteUri
这将让你的完整path(包括http:// .. )
如果只想要请求(协议,主机和端口)的scheme和权威部分使用
Request.Url.GetLeftPart(UriPartial.Authority)
我在用
Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/")
我在我的代码中使用这个自定义类。 用于发送电子邮件,如no-reply@example.com“no-reply @”+ BaseSiteUrl适用于任何网站。
// get a sites base urll ex: example.com public static string BaseSiteUrl { get { HttpContext context = HttpContext.Current; string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/'); return baseUrl; } }
如果你想在代码隐藏中使用它摆脱上下文。
你想要的服务器名称? 或主机名?
Request.Url.Host ala Stephen
Dns.GetHostName – 服务器名称
Request.Url将能够访问您所需要知道的关于所请求页面的大部分内容。
Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";
这会给你正在坐的页面的完整path。 我在查询string中添加。
Request.Url.Host
我面临同样的问题,到目前为止,我发现:
new Uri(Request.Url,Request.ApplicationPath)
要么
Request.Url.GetLeftPart(UriPartial.Authority)+Request.ApplicationPath
如果您希望在结尾包含任何唯一string,与example.com?id = 99999类似,请使用以下内容
Dim rawUrl As String = Request.RawUrl.ToString()
使用js文件可以捕获以下内容,也可以在代码隐藏中使用:
<script type="text/javascript"> alert('Server: ' + window.location.hostname); alert('Full path: ' + window.location.href); alert('Virtual path: ' + window.location.pathname); alert('HTTP path: ' + window.location.href.replace(window.location.pathname, '')); </script>