2011-12-19 23 views
1

我使用Request.Url.AbsoluteUri.Replace从URL路径替换一些单词,在MVC使用Request.Url.AbsoluteUri.Replace 3

string blogUrl = Request.Url.AbsoluteUri.Replace("/rss", string.Empty).TrimEnd("/".ToCharArray());//This line replaces rss 
blogUrl = blogUrl.Replace("/articles/articles","/articles");//This line doesnt replace articles 

您可以通过点击RSS查看RSS提要图片在网站的右侧:Rss 。 链接的RSS Feed生成是:

http://www.dotraining.co.uk/articles/articles/blog/basketball-posts/guada-highlights/ 

,而不是http://www.dotraining.co.uk/articles/blog/basketball-posts/guada-highlights/

任何想法在那里即时得到它错了

+1

为什么使用string.replace来操作url而不是使用路由和url助手? – 2011-12-19 15:57:44

+0

因为我不知道哪个url助手可以使用:) – 2011-12-19 15:58:58

+0

这取决于你想要达到的效果,但Url.Action似乎是一个不错的选择。 – 2011-12-19 15:59:50

回答

2

尝试逃脱/字符的字符串:

blogUrl = blogUrl.Replace("articles//articles","articles"); 

或者尝试使用字符串文字:

blogUrl = blogUrl.Replace(@"/articles/articles",@"/articles"); 
+0

切勿使用字符串操作,如替换,...​​来操作URL。有更好的方法。 – 2011-12-19 16:00:15

+0

尝试没有成功,仍然是相同的结果 – 2011-12-19 16:01:18

+0

我更新了我的答案。我想我可能会把斜杠和反斜杠混淆起来。我不得不同意,你可能不应该使用替换的URL操作。 – Rondel 2011-12-19 16:08:59