アンパサンドを含むクエリ文字列パラメータ値があります。たとえば、パラメーターの有効な値は次のようになります。
a & b
パラメータを含む URL を生成するときは、System.Web.HTTPUtility.UrlEncode() を使用して、各要素を URL フレンドリーにします。(正しく) 次のような URL が表示されます。
http://example.com/foo?bar=a+%26b
問題は、ASP.NET の Request オブジェクトが (エンコードされた) アンパサンドをクエリ文字列パラメーターの区切り記号として解釈しているため、値が 2 つの部分に分割されていることです (最初の部分にはパラメーター名として「bar」があり、2 番目の部分には null 名があります)。 )。
ASP.NET は最初に URL を URL デコードしてから、クエリ文字列を解析するときにそれを使用しているようです。
これを回避する最善の方法は何ですか?
更新: 問題は、ASP.NET 自体ではなく、URLRewriter (サードパーティのプラグイン) にかかっています。これを反映するためにタイトルを変更しましたが、問題の詳細がわかるまで、残りの質問テキストはそのままにしておきます。