@ledsun blog

無味の味は佳境に入らざればすなわち知れず

Respose.RedirectとURLエンコーディング

Response.Redirectの引数の文字列にURLに使えない文字が含まれていると自動的にURLエンコーディングします。

例えば,が入っている場合です。

Response.Redirect("~/hoge.aspx?fuga=abc,def")

すると~がページ名の一部として認識されて404エラーになります。?や=もページ名の一部として認識されてクエリ文字列が取得できなくなります。

これを防ぐには事前にURLエンコードします。

Response.Redirect("~/hoge.aspx?fuga=" + HttpUtility.UrlEncode("abc,def"))