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だった。

Share