4

有没有办法对整个 URL 查询字符串进行 url 编码,而无需尝试对每个单独的查询字符串参数进行 urlencode。现在我不得不用这样的东西重建查询字符串:

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

2 回答 2

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 进行转义。如果启用国际资源标识符 (IRI) 或国际化域名 (IDN) 解析,则根据 RFC 3986 和 RFC 3987 对查询信息进行转义。

于 2009-07-14T18:39:24.487 回答
0

除了使用 string.Format 并且在 QueryString 末尾有一个额外的 & 之外,上述方法是最佳的。

于 2009-07-14T18:40:23.423 回答