urlencode所有查询字符串参数

时间:2009-07-14 18:30:39

标签: asp.net urlencode

有没有办法在不尝试对每个查询字符串参数进行urlencode的情况下对整个URL查询字符串进行网址编码。现在我不得不用这样的东西重建查询字符串:

foreach (string x in Page.Request.QueryString.Keys)
{
 sQueryString += x + "=" + Server.UrlEncode(Request.Params.Get(x)) + "&";
}

2 个答案:

答案 0 :(得分:6)

您应该做的就是获得以下价值:

Page.Request.Url.Query

请参阅:

    Uri baseUri = new Uri("http://www.contoso.com/catalog/shownew.htm?date=today&<a>=<b&gt;");
    string queryString = baseUri.Query;

queryString参数将返回?date=today&%3Ca%3E=%3Cb%3E

另一个编辑 - 来自MSDN

  

Query属性包含任何查询   URI中包含的信息。询问   信息与路径分开   问号(?)和   继续到URI的结尾。该   返回的查询信息包括   领先的问号。

     

转义查询信息   根据RFC 2396默认情况下。如果   国际资源标识符   (IRIs)或国际化域名   启用名称(IDN)解析,   查询信息被转义   到RFC 3986和RFC 3987。

答案 1 :(得分:0)

除了使用string.Format和你有额外的&amp;在QueryString的末尾,上面的方法是最佳的。