asp.net url减去pagename和querystring

时间:2011-02-28 12:00:15

标签: asp.net url path httprequest

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

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

等...

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

因此,如果页面名称为http://mysite.com/dir1/subdir2/mypage.aspx?param=5&param2=9

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这也有效:

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

答案 2 :(得分:-1)

你是对的,这样的事情还没准备好所以你需要自己做。一个方法是:

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);
}