【T4b】モデルとビューの連携(後編)(5/6)
プロジェクトタイプ | (注意: 本文参照) |
---|---|
プロジェクト名 | T4b |
ソリューション名 | PIT4 |
注意
- 本ページの作業内容は 前のページまでの続き になっていることに注意せよ.
- 先に前のページまでをすべて読み,指示されている作業を済ませてから本ページを読むこと.
- プロジェクトの作成作業については準備作業を参照せよ.
4b-5. 入力欄の初期値とモデルクラスの初期値
現状では図4b-3-2に示したように,入力欄に「0」があらかじめ入力された状態で表示される.
この入力欄の初期値の「0」はView()
メソッドに渡したHealthInfo
クラスのインスタンスの値に基づいている.
リスト4b-4-1の現状のHealthInfo
クラスでは,特にコンストラクタなどを定義していない.このような場合,
フィールドやプロパティは「その型のデフォルト値」で初期化される. int 型や double 型のような数値型の場合,
デフォルト値はゼロである. モデルクラスのインスタンスの各フィールド/プロパティに特定の値をセットしてから
View()
メソッドに渡せば,入力欄に初めからその値が入力された状態で表示させることもできる .
たとえば「体重(kg)」の入力欄に80
,「身長(cm)」の入力欄に170
があらかじめ入力された状態でフォームを表示するには
HealthInfo
クラスのインスタンスの各プロパティにあらかじめこれらの値を代入しておけばよい.試しに,
GET用Index()
メソッド(引数なしのほう)に_に示す内容を追記してみよう.
|
|
ここまで書けたら実行してみよう.すると_に示すように,体重の入力欄に80,身長の入力欄に170という値が 初めから入力された状態で表示されるはずである.
リスト4b-4-3の末尾(14行目)で,メソッドの引数として渡されたHealthInfo
クラスのインスタンス,
すなわちユーザーが入力した体重と身長の入力値をView()
メソッドに渡しているのは,入力された値を
維持するためである(ただし,このような対応をしなくても表示しているページと同じページへのPOSTであれば,
入力値を維持するウェブブラウザも多い).