URLEncodeしたページにアクセスした後、ポストバックする時はURLEncodeされていないURLでアクセスしてしまうのを回避する(検証はASP.NET1.1)

URLに日本語を利用していて、
URLEncodeしてwebフォームにアクセスしても、
そのままだとレンダリングされたformタグのaction属性が、
デコードされたURLになっている。
そのため、ポストバック時にアクセスするURLはEncodeされていない。


それを回避するにはglobal.asaxのPreRequestHandlerExecuteイベント内で、
下記のコードを記述すればよい。


System.Web.HttpContext.Current.RewritePath(System.Web.HttpContext.Current.Request.Url.AbsolutePath);


実際はそのイベントじゃなくても、ある程度許容範囲がある。
RequestEndイベント内でもOKだった。