5月19日(火)1、2コマ目
今日、やったこと
- [練習問題]拡張Sessionオブジェクト 練習問題9
- [練習問題]拡張Sessionオブジェクト 練習問題10
- 1画面に複数のボタン
今日のホワイトボード
[練習問題]拡張Sessionオブジェクト 練習問題9
正解例をあげておきます。
Program.cs
Sessionオブジェクトが使えるように設定。いままでとおなじ。
SessionExtensions.cs
ISessionインタフェースに拡張メソッドを追加する。いままでと同じ。
Item.cs
iPad情報受け渡し用クラス。
SelectedItem.cs
選択されたiPad、色をひとまとめにして受け渡すためのクラス。
Index.cshtml.cs
Index.cshtml
Sessionオブジェクトから選択済みiPad情報を取得し、表形式で表示する。
[練習問題]拡張Sessionオブジェクト 練習問題10
正解例をあげておきます。
Program.cs
Sessionオブジェクトが使えるように設定。いままでとおなじ。
SessionExtensions.cs
ISessionインタフェースに拡張メソッドを追加する。いままでと同じ。
Coffee.cs
コーヒー情報受け渡し用クラス。
Size.cs
サイズ情報受け渡し用クラス。
DiffPriceプロパティはサイズによる価格の差額。
SelectedItem.cs
選択されたコーヒー、サイズ、入力された数量をまとめて受け渡すためのクラス。
同じ商品か確認するのはこのクラスがいいと思う。
IsSame()でおなじ商品(コーヒーとサイズが同じ)か否かをチェックする。
Index.cshtml.cs
OnPost()にて、選択商品をリストに追加する際、SelectedItemクラスのIsSame()で同じ商品か否かをチェック。
Index.cshtml
練習問題9と同じように、Sessionオブジェクトから選択済み商品リストを取得して、表形式で表示。
複数ボタン
<button>タグも<input>タグと同じようにname属性、value属性を指定できる。
ボタンクリック時には、
name属性値=value属性値
がサーバーに送信される。
下図のようにボタンが2つある場合、どちらが押されたか判断する必要がある。
name属性を同じにすると、OnPost()メソッドには1つの引数で押されたボタンに応じた値(value属性値)が送信される。
|
| 図 1つの画面に+ボタン、ーボタン |
ソースコードは以下のとおり。
Index.cshtml
+ボタン、-ボタンともにname属性は同じ。value属性でどちらがクリックされたか判断。
Index.cshtml.cs
次回は
Sessionオブジェクトの確認テスト。
