none
cookieless=true/false IsPostBackの値が違う RRS feed

  • 質問

  • XP+sp2

    VS2005(C#)

     

    webアプリケーションを作っております。

    cookieless=trueの時にweb.configを書き換えサイトが再起動がされると既に表示済みのクライアントブラウザから要求があった場合、Page.IsPostBackプロパティの値はfalseであり、初めてのクライアントからの要求となります。

    しかしcookieless=falseとした場合は、web.configを書き換えサイトが再起動されその後既に表示済みのクライアントブラウザから要求があった場合、Page.IsPostBackプロパティの値がtrueとなっています。

    cookielessに設定した値の違いによる今回のPage.IsPostBack値の変化は正常なものなのでしょうか?

    ご存知の方がいましたら宜しくお願いいたします。

    2007年3月2日 11:58

回答

  • とりあえず私のところで同じ現象になりました。
    はっきりとはわからないのですが、cookieless=trueの場合は、Webページの情報がシリアライズされたものがURLに含まれます。この状態でweb.configを書き換えると、新たなURLが生成されて、ブラウザはRedirectされます。つまり、URLが異なるので、IsPostBackはfalseになるのではないでしょうか?
    一方、cookieless=falseの場合は、DeterminePostBackModeメソッドでIsPostBackをセットするのですが、この時にViewStateが存在するので、Webアプリケーションの再起動にかかわらず、IsPostBackはtrueになるのではないでしょうか?
    DeterminePostBackModeメソッドが、どのようにIsPostBackを判定しているのかがわかればいいんですが・・・

    2007年3月4日 15:36
    モデレータ

すべての返信

  • とりあえず私のところで同じ現象になりました。
    はっきりとはわからないのですが、cookieless=trueの場合は、Webページの情報がシリアライズされたものがURLに含まれます。この状態でweb.configを書き換えると、新たなURLが生成されて、ブラウザはRedirectされます。つまり、URLが異なるので、IsPostBackはfalseになるのではないでしょうか?
    一方、cookieless=falseの場合は、DeterminePostBackModeメソッドでIsPostBackをセットするのですが、この時にViewStateが存在するので、Webアプリケーションの再起動にかかわらず、IsPostBackはtrueになるのではないでしょうか?
    DeterminePostBackModeメソッドが、どのようにIsPostBackを判定しているのかがわかればいいんですが・・・

    2007年3月4日 15:36
    モデレータ
  • cookielessの値によりIsPostBackの値は同じ操作を行っても値が違うというのは、おかしな事ではないということですね。

    今までは、cookieless=trueとし、web.configが変更されたことによる再起動後の要求は全て初期画面を表示するよう作成しておりましたが、cookielessの事を考えると単純にIsPostBackだけを判断するのではだめということですね。

     

    勉強になりました。ありがとうございました。

    2007年3月5日 0:35