【问题标题】:Get URL of ASP.Net Page in code-behind [duplicate]在代码隐藏中获取 ASP.Net 页面的 URL [重复]
【发布时间】:2010-09-10 21:29:16
【问题描述】:

我有一个 ASP.Net 页面,它将托管在几个不同的服务器上,我想获取页面的 URL(或者更好的是:托管页面的站点)作为字符串用于代码隐藏。有什么想法吗?

【问题讨论】:

标签: asp.net


【解决方案1】:

使用这个:

Request.Url.AbsoluteUri

这将为您提供完整路径(包括http://..。)

【讨论】:

  • 请记住,这还将包括查询部分 (?key=value....)
  • 如果应用程序不是托管在服务器根目录上而是在一个目录中,这将不起作用。如果应用程序托管在 www.contoso.com/app/ 这将只返回 www.contoso.com
【解决方案2】:

如果您只想要请求的方案和权限部分(协议、主机和端口),请使用

Request.Url.GetLeftPart(UriPartial.Authority)

【讨论】:

【解决方案3】:

我正在使用

Request.Url.GetLeftPart(UriPartial.Authority) +
        VirtualPathUtility.ToAbsolute("~/")

【讨论】:

    【解决方案4】:

    我在自定义类的代码中使用它。派上用场发送电子邮件,如 no-reply@example.com “无回复@” + 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;
        }
    
    }
    

    如果您想在代码隐藏中使用它,请摆脱上下文。

    【讨论】:

    • 请注意,Authority 不包括协议(http:// 或 https://)。在您的情况下很好,但可能不适用于某些人。不过可以通过System.Web.HttpContext.Current.Request.Url.Scheme获得。
    【解决方案5】:

    您想要服务器名称吗?还是主机名?

    Request.Url.Host阿拉斯蒂芬

    Dns.GetHostName - 服务器名称

    Request.Url 可以访问您需要了解的有关所请求页面的大部分信息。

    【讨论】:

      【解决方案6】:
      Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";
      

      这将为您提供您所在页面的完整路径。我在查询字符串中添加了。

      【讨论】:

        【解决方案7】:

        我遇到了同样的问题,到目前为止我发现:

        new Uri(Request.Url,Request.ApplicationPath)
        

        或

        Request.Url.GetLeftPart(UriPartial.Authority)+Request.ApplicationPath
        

        【讨论】:

          【解决方案8】:

          Request.Url.Host

          【讨论】:

            【解决方案9】:

            如果您想在末尾包含任何唯一字符串,类似于 example.com?id=99999,请使用以下内容

            Dim rawUrl As String = Request.RawUrl.ToString()
            

            【讨论】:

              【解决方案10】:

              使用 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>
              

              【讨论】:

                猜你喜欢
                • 2013-03-15
                • 2023-03-27
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-08-16
                相关资源
                最近更新 更多