【问题标题】:asp.net url minus pagename and querystringasp.net url 减去 pagename 和 querystring
【发布时间】:2011-07-05 17:30:12
【问题描述】:

我一直在网上寻找针对以下问题的简单直接的解决方案,但我似乎找不到任何适合我需要的东西。

我有一个包含许多子目录的 asp.net 站点,如下所示。

等等……

在我的每个网站页面上,我需要提取页面的 URL 减去页面名称和查询字符串。

所以如果页面名称是http://mysite.com/dir1/subdir2/mypage.aspx?param=5&param2=9

我需要以下http://mysite.com/dir1/subdir2/ 我无法找到使此 URL 格式可用的 httprequest 对象的任何属性。

【问题讨论】:

    标签: asp.net url path httprequest


    【解决方案1】:

    看看this。它应该为您提供所需的一切,尤其是Url.Segments

    【讨论】:

      【解决方案2】:

      这也有效:

      System.IO.Path.GetDirectoryName(url).Replace(@"\","/");
      

      【讨论】:

        【解决方案3】:

        你是对的,这样的东西还没有准备好,所以你需要自己做。一种配方是:

        public string GetSubFolderURL()
        {
            string url = "http";
            if (string.Equals(Request.ServerVariables["HTTPS"], "ON", StringComparison.CurrentCultureIgnoreCase))
                url += "s";
            url += "://";
            url += Request.ServerVariables["SERVER_NAME"];
            int port;
            if (Int32.TryParse(Request.ServerVariables["SERVER_PORT"], out port) && port != 80)
                url += ":" + port;
            url += Request.ServerVariables["SCRIPT_NAME"];
            return url.Substring(0, url.LastIndexOf("/") + 1);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-26
          • 2012-04-20
          • 2010-12-08
          • 1970-01-01
          相关资源
          最近更新 更多