none
Postbackのaction値がリクエストURLと異なる RRS feed

  • 質問

  • visual studio 2010で開発したasp.netのプロジェクトをvisual studio 2015へ移行しています。


    URLパラメータを保持したページでボタンクリックによるポストバックを発生させるのですが、

    ポストバック前はShift-JISでエンコードされたパラメータが

    ポストバック後にはutf-8に変わっていました。


    ポストバック前で開いているページのURLが

     /hoge.aspx?name=shift-jisでエンコードされたパラメータ

    のとき、


    <form runat="server" accept-charset="Shift-JIS">

    から生成されたHTMLが

    <form method="post" action="./hoge.aspx?name=utf-8でエンコードされたパラメータ" accept-charset="Shift-JIS">

    となってしまいます。


    デバッグでPage.ClientQueryStringを確認したところ、

    utf-8でエンコードされたパラメータが代入されていました。

    しかし、page.request.Url.Queryには

    shift-jisでエンコードされたパラメータが代入されていました。


    web.configの設定は以下となっています。

    <globalization
            requestEncoding="Shift-JIS"
            responseEncoding="Shift-JIS"
            responseHeaderEncoding="Shift-JIS"
            enableBestFitResponseEncoding="true"
    />


    解決策、またはaction要素の生成元を操作する方法を知りたいです。


    ポストバックが発生する度にパラメータの桁数が増え続けてしまうので、解消したいです。

    よろしくお願いします。

    2019年5月23日 6:20

すべての返信

  • > visual studio 2010で開発したasp.netのプロジェクトをvisual studio 2015へ移行しています。

    Visual Studio の違いで今回のようなクエリ文字列が変わってしまうということは考えにくく、質問に書いてない何かが変わった(変えた)のだと思いますが、それは第三者は知る由もないことなのですが・・・

    質問者さんに何が変わったかの心当たりはなくて、全く原因不明ということであれば、問題を再現できる必要最低限のコードと手順を書いてアップしてください。
    2019年5月23日 6:41
  • 返信ありがとうございます。

    現行の動作もshift-jisからutf-16に変わってしまう情報を記述し忘れていました。

    まずは現行の動作の再現をしてみます。

    2019年5月23日 7:22