ViewStateを使ったデータの保存ViewStateを使ったデータの保存WebサーバーとWebクライアントはリクエストとレスポンスをやり取りして処理を進めていきます。これらはいつもつながっているわけではないので、リクエストがあったらサーバーは処理をする準備をして処理をし、結果を返したら後片付けをします。リクエストがあったら準備をして...を繰り返していきます。Webアプリケーションでは、データを複数のやり取りで利用したい場合があります。上のような仕組みでは、毎回毎回データを用意しなくてはなりません。一度使ったデータはレスポンスがされたら消えてしまいます。データが消えてしまう何度かのやり取りでデータを扱いたい場合は、データを保存させなければなりません。その方法にはいくつかあります。この節ではそのうちの一つであるビューステートを使った方法を見てみましょう。ビューステートはWebブラウザーにデータを保存させます。Htmlの隠し要素としてデータを保持させ、画面上にはデータを表示しません。データをWebクライアント側に保存Webサーバーは保存したいデータをレスポンスに載せてWebブラウザーに送り、保存させます。Webブラウザーからリクエストがあった時に一緒に保存させておいたデータを送ってもらいます。ビューステートはStateBagオブジェクトを使って扱います。PageオブジェクトのViewStateプロパティでStateBagオブジェクトを取得できます。デザインWebフォームを追加して、次のようにコントロールを配置してください。プログラム次のように各イベントハンドラにプログラムを記述してください。"色を入力してください。"色を保存してください。実行結果index.aspxを実行してください。解説15行目ではViewStateプロパティにキー名colorで、txtColorに入力した文字列を格納しています。これによりWebブラウザー側に入力した文字列が保存されるようになります。22行目では、ビューステートの情報を取得して、その色をtxtColorの背景色としてセットしています。System.Draw.Color構造体のFromNameメソッドは、引数に指定した色名のColorオブジェクトを生成できます。今回は結果としてtxtColorに入力した色名を背景色として表示させています。ビューステートは多用しすぎるとWebサーバー・Webクライアント間でのやり取りする情報が多くなり、レスポンスが遅くなる可能性があるので注意が必要です。