ポストバックされる「現在のページ情報」を確認

C# ASP.NET でポストバックされる「現在のページ情報」を確認します。
Web Program で、現在表示中のページをサーバー側で復元したり、ポストバック関数で取得する仕組みを理解して下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. HTTP プロトコルは状態を維持しません。
    サーバーにアップロードした *.aspx を呼び出して、Wev 上のボタンをクリックするとポストバックが発生します。
    サーバー上のページインスタンスはクライアントに出力した段階で破棄されています。
    ポストバックが発生すると、再びサーバー上にインスタンスが生成され処理されます。
    そこで Network Game のように、ステージ(ページ)が変更されても現在の情報を引き継ぐには何らかの工夫が必要になります。
    その辺りが Network Game の最も解りにくい(難しい)所では無いでしょうか。 (^_^;)
  2. ASP.NET ではポストバックされるときに form の内容をサーバーに転送します。
    form に貼り付けた Control を現在の状態に復元する情報や ASP.NET の制御情報も同時に転送されます。
    なにしろサーバー側には、現在表示されているページに関する情報は何も残っていないのです。 (^_^;)
    このプログラムは、どんな情報が送られているかを調べる目的で作成しました。
  3. 渡された情報一覧を表示するコードです。
        int loop1, loop2;
        // QueryString を受け取る変数を定義
        NameValueCollection coll=Request.Params;
        // Query のキーを String 配列に格納
        String[] arr1 = coll.AllKeys;
        // arr1 の数だけループ
        for (loop1 = 0; loop1 < arr1.Length; loop1++)
        {   // arr1 のキーを表示
            Response.Write("キー: " + Server.HtmlEncode(arr1[loop1]) + "<br>");
            // キーに割り当てられた文字列を String 配列に取得
            String[] arr2 = coll.GetValues(arr1[loop1]);
            // arr2 の数だけループ
            for (loop2 = 0; loop2 < arr2.Length; loop2++)
            {   // キーに割り当てられた文字列を表示
                Response.Write("値 " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");
            }
        }
        
  4. RadioButtonList の表示は Query でボタンの個数を渡す を参照して下さい。
  5. ページ下部のリンクから「param.aspx を呼び出す」を実行すると Parameter の一覧が表示されます。
    ラジオボタンから適当なものを選んで、ボタンをクリックするとポストバックされて新しいページに更新されます。
    これらの情報は ASP.NET が自動的に処理してくれるので、別に知らなくても普通のプログラムを作成する上では支障はないのですが、 Network Game を作成するときには、このような仕組みを理解しておくことは重要です。
    Image を表示 と合わせて参照して下さい。

param.aspx のソースコード

param.aspx?test=Test Query String を呼び出す

超初心者のプログラム入門(C# on-line game)