在地址栏中获取URL的一部分

时间:2011-08-26 05:13:08

标签: c# asp.net

这就是我的尝试:

string myURL= "http://mysite.com/articles/healthrelated";
String idStr = myURL.Substring(myURL.LastIndexOf('/') + 1);

我需要获取“healthrelated”,即URL中最后一个斜杠后面的文本。现在的问题是我的网址也可以是:

"http://mysite.com/articles/healthrelated/"   

即该文本末尾的“Slash”。现在最后一个斜线变成了“健康相关”之后的斜线,所以我得到的结果是

String idStr = myURL.Substring(myURL.LastIndexOf('/') + 1);

是空字符串..

我的代码应该是什么样的,所以无论最终是否有斜线,我总是得到“健康相关”的文本。我只需要以某种方式获取该文本。

3 个答案:

答案 0 :(得分:3)

试试这个。

var lastSegment = url
    .Split(new string[]{"/"}, StringSplitOptions.RemoveEmptyEntries)
    .ToList()
    .Last();

答案 1 :(得分:1)

为什么不使用Uri类.NET并使用segments属性:

http://msdn.microsoft.com/en-us/library/system.uri.segments.aspx

答案 2 :(得分:0)

在这种情况下你可以做的就是使用REGEX(我不是专家,但我这里的其他人都不感兴趣;))或简单:

string[] urlParts = myURL.Split('/');

并获取此数组中的最后一个字符串。