4

個々のクエリ文字列パラメータをurlencodeしようとせずに、URLクエリ文字列全体をURLエンコードする方法はありますか?今、私は次のようなものでクエリ文字列を再構築する必要があります:

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

もう1つの編集-MSDNから:

Queryプロパティには、URIに含まれるクエリ情報が含まれます。クエリ情報は、疑問符(?)でパス情報と区切られ、URIの最後まで続きます。返されるクエリ情報には、先頭の疑問符が含まれます。

クエリ情報は、デフォルトでRFC2396に従ってエスケープされます。International Resource Identifiers(IRI)またはInternationalized Domain Name(IDN)の解析が有効になっている場合、RFC3986およびRFC3987に従ってクエリ情報がエスケープされます。

于 2009-07-14T18:39:24.487 に答える
0

string.Formatを使用し、QueryStringの最後に余分な&がある場合を除いて、上記のアプローチが最適です。

于 2009-07-14T18:40:23.423 に答える