我操纵字符串并不好用,可以稍微帮忙。
我有一个网址(http://localhost/mySite/default.aspx),我将AbsolutePath
作为我正在使用的字符串(/mySite/default.aspx):
string mySubUrl = Request.Url.AbsolutePath;
我要做的是删除AbsolutePath
的第一部分和最后部分。在此示例中,删除" mySite"和" default.aspx",这将只留下" /"。
也可能存在网址较长或较短的情况,例如http://localhost/mySite/mySubFolder/default.aspx,在这种情况下,在删除AbsolutePath
的第一部分和最后部分之后,我会留下' / mySubFolder /'
我确实尝试过与Uri片段合作,但并没有走得太远:
string absolutePath = Request.Url.AbsolutePath;
Uri uri = new Uri(absolutePath);
string[] pathSegments = uri.Segments;
答案 0 :(得分:0)
快速解决方案:
string[] pathSegments = Request.Url.Segments.Skip(1).Take(Request.Url.Segments.Length - 2).ToArray();
答案 1 :(得分:0)
Request.Url.AbsolutePath
已经为您移除了网址的左侧部分,因此它会为您提供类似/subSection/subFolder/default.aspx
的内容。
然后,您可以删除最后一部分:
string absolutePath = Request.Url.AbsolutePath;
string[] urlSegments = absolutePath.Split('/');
urlSegments = urlSegments.Skip(1).Take(urlSegments.Length - 2)
string url = string.Join("/", urlSegments);