2011-12-05 7 views
0

はどのように私は、現在のQueryString値を取得および変更が、どのようにHttpRequestに修正のQueryString書き込むことができ、クラスライブラリ内のHttpRequestのQueryString値を変更するには:クラスライブラリのHttpRequest QueryStringの値を変更する方法は?

public static HttpRequest ModiQueryString(HttpRequest request) 
{ 
    var nv = new NameValueCollection(request.QueryString); 
    foreach (string key in nv.Keys) 
    { 
     nv[key] = "abc"; 
    } 
    //here how to let request.QueryString equal nv 
    return request; 
} 

を場合、Request.QueryStringが読み取り専用であるため、ので、どのように僕にできる? ?私を助けることができる おかげ

私は新しいのHttpRequestを作成した場合、私は使用することができますです

QueryStringが設定可能でないとクラスが起動する sealedあるので、これは単純に不可能です

StringBuilder newQuery=new StringBuilder(); 
foreach(string key in nv.Keys) 
{ 
    newQuery.AppendFormat("{0}={1}",key,FilterKeyWord(nv[key])); 
} 
HttpRequest newRequest = new HttpRequest("", request.Url, newQuery.ToString()); 
return newRequest; 
+0

なぜ、あなたはなぜクエリ文字列を変更する必要がありますか? – Phill

+0

キーワードをフィルタリングする共通サービスを作成したい – artwl

答えて

3

リクエストが作成される前にクエリ文字列を変更するか、HttpRequestしか使用できない場合は、編集可能なクエリ文字列の一時的なコピーを保存し、変更されたクエリで別のHttpRequestを作成する必要があります文字列。

+0

@artwl:質問の編集として投稿してください。それはコメントでそれを読むことは非常に困難です。 – Jon

+0

ありがとう、私は編集の質問がある – artwl

関連する問題