- PR -

ASP.NET IsPostBack

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2004/09/27
投稿数: 71
投稿日時: 2005-06-23 12:14
今週からASP.NETの勉強を始めました。よろしくお願いします。
IsPostBackの意義がまだあやふやなので教えてください。
あるページにポストバックはリロードや再リクエストと同じだとありました。
if (!IsPostBack){.....}で再ロード時からにするとヘッダーの内容が見れました。
次に、以下の内容(一部添付)を試しました。最初のロード時に見れないのはわかるのですが、再ロードと再リクエストをそれぞれ行ったのですが、ともにヘッダー内容が見れませんでした。


*スクリプトの一部*
void Page_Load(Object Sender, EventArgs e){
if (IsPostBack){
DataBind();
}
}

*処理の一部*
<%# Request.Headers %>


この場合、なぜ再ロードしても、ヘッダー内容が見れないのですか?
よろしくお願いします。
いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2005-06-23 21:11
>今週からASP.NETの勉強を始めました。よろしくお願いします。

 最初はなれないかもしれませんが、がんばってください。

IsPostBack っていうのは、言葉どおり
 POSTメソッドでリクエストが(帰って)きたかどうかってことです。
 POSTで送信されてきたら、trueになります。
 GETメソッドだとfalse です。

最初にURLをたたいて、呼び出す (GETメソッドですよね)で
送られてきたものを、

> 再ロードと再リクエスト

ページの更新 をしても、GETメソッドなのでfalseです。

ひっかかっているのは、このあたりの勘違いじゃないかな?

未記入
ベテラン
会議室デビュー日: 2004/09/27
投稿数: 71
投稿日時: 2005-06-24 09:35
おはようございます。
いのつちさん、ご丁寧にありがとうございます。よく分かりました。

ASP.NETでは、自動で(デフォルトで)全てがPOST送信されると思っていました。
最初はGET送信されるのですね。なるほど。

ボタンを配置して、Request.ServerVariablesdのREQUEST_METHODを確認してみました。
本当ですね。最初(ページ立ち上げ)はGETになっていました。
続けて、配置したボタンをクリックしたら、POST送信になりました。
だから、最初はIsPostBackが無効になるのですね。

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-24 09:43 ]
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-06-24 10:34
もしかしたら勘違いかもしれないため補足。

最初は GET なのは、ASP.NET とは関係なく、ブラウザに URL を入れたら
「ブラウザが」GET リクエストを行うからです。
未記入
ベテラン
会議室デビュー日: 2004/09/27
投稿数: 71
投稿日時: 2005-06-24 12:23
にしざきさん、ありがとうございます。

>最初は GET なのは、ASP.NET とは関係なく、ブラウザに URL を入れたら「ブラウザが」GET リクエストを行うからです。

そうか、なるほど。
最初はページからの要求ではなくブラウザからの要求だから、HTMLformのデフォルトと同じであるGET送信がされるのですね。
それに対してサーバが返した要求ページには、ASP.NETのデフォルトであるPOSTが用意されているということですね。

@最初がブラウザからのページ要求←Methodは、GET
A要求されたページを表示←ページ内のMethodには、Post
BAのページからPost要求

だから、@の送信ときはIsPostBackがFalseになり、Bの送信のときはTrueになるのですね。
ありがとうございます。

これに関する質問をしてもよろしいでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22367&forum=7&0に飛びます。

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-24 12:28 ]
1

スキルアップ/キャリアアップ(JOB@IT)