是否有一種方法可以在不嘗試urlencode每個查詢字符串參數的情況下對整個URL查詢字符串進行url編碼。現在我遇到了這樣的事情,重建查詢字符串:urlencode所有查詢字符串參數
foreach (string x in Page.Request.QueryString.Keys)
{
sQueryString += x + "=" + Server.UrlEncode(Request.Params.Get(x)) + "&";
}
是否有一種方法可以在不嘗試urlencode每個查詢字符串參數的情況下對整個URL查詢字符串進行url編碼。現在我遇到了這樣的事情,重建查詢字符串:urlencode所有查詢字符串參數
foreach (string x in Page.Request.QueryString.Keys)
{
sQueryString += x + "=" + Server.UrlEncode(Request.Params.Get(x)) + "&";
}
所有你應該做的是得到以下值:
Page.Request.Url.Query
參見:
Uri baseUri = new Uri(" http://www.contoso.com/catalog/shownew.htm?date=today&<a>=<b> ;");
string queryString = baseUri.Query;
The queryString
參數將返回?date=today&%3Ca%3E=%3Cb%3E
。
還有一個編輯 - 從MSDN:
查詢屬性包含包含在URI中的任何查詢 信息。查詢 信息通過問號(?)與路徑 分開,並且 繼續到URI的末尾。返回的查詢信息 包含 的主要問號。
默認情況下,查詢信息根據RFC 2396轉義 。如果 國際資源標識符 (IRIS)或國際化域名 名稱(IDN)的解析被啓用, 查詢信息是根據 以RFC 3986和RFC 3987.
除了使用的String.Format,你逃脫在QueryString的末尾有一個額外的&,上面的方法是最優的。
這將給你整個當前的QueryString,但是如果你運行URLEncode你將失去你的值,因爲&符號將被URL安全版本所取代。 – 2009-07-14 18:41:19