如何在ASP MVC中编码完整的URL字符串

时间:2011-05-06 13:20:29

标签: asp.net-mvc asp.net-mvc-2 url asp.net-mvc-3 urlencode

我得到一个url字符串,并希望将其转换为合法的http url:

例如:

"http://one/two/three%four/five#five?six seven"应变为"http://one/two/three%25four/five%23five?six%20seven"

但是,HttpUtility.UrlEncode无效,因为它会对整个字符串进行编码(包括合法的"://")。

提前致谢

2 个答案:

答案 0 :(得分:4)

看看你想要的是什么?

   Uri uri = new Uri("http://one/two/three%four/#five?six seven");
   string url = uri.AbsoluteUri + uri.Fragment; 
   // url will be "http://one/two/three%25four/#five?six%20seven#five?six%20seven"

答案 1 :(得分:0)

分裂和重新加入怎么样:

string url = "http://one/two/three%four/#five?six seven";
string encodedUrl = "http://" + string.Join("/", url.Substring(7).Split('/').Select(part => HttpUtility.UrlEncode(part)).ToArray());