从ASP.NET

时间:2015-07-20 20:00:54

标签: c# asp.net string

我操纵字符串并不好用,可以稍微帮忙。

我有一个网址(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;

2 个答案:

答案 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);