我一直在网上寻找以下问题的简单直接的解决方案,但我似乎无法找到任何适合我需要的东西。
我有一个包含许多子目录的asp.net站点,如下所示。
等...
在我的每个网站页面上,我需要提取页面的URL减去页面名称和查询字符串。
因此,如果页面名称为http://mysite.com/dir1/subdir2/mypage.aspx?param=5¶m2=9
我需要以下http://mysite.com/dir1/subdir2/我无法找到httprequest对象的任何属性,使这种URL格式随时可用。
答案 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);
}