6月9日(火)1、2コマ目
今日、やったこと [サンプルアプリケーション作成]ショッピングサイト的なサイト [練習問題]Cartクラスをつかう その1 今日のホワイトボード [サンプルアプリケーション作成]ショッピングサイト的なサイト 前回のつづき。 Sessionオブジェクトに格納、取り出す際に SessionExtensionsのGet<>()メソッドで、要素をシリアル化して、 文字列化 して、Sessionオブジェクトに格納している。 Sessionオブジェクトから取り出すのは文字列。文字列とキーを使って、元のクラスのインスタンスを再現する(逆シリアル化)。このとき、コンストラクタがオーバーロードされている場合、実行すべき コンストラクタ を [JsonConstructor] アノテーションで指定する。 図 シリアル化、逆シリアル化 削除ボタン どの商品を削除すべきか、削除ボタンのvalue属性にセットする。 商品のIDは重複する可能性があるので、行番号的なデータを使う。 図 削除ボタンのvalue属性 各行の商品に割り当てられる行番号的なデータはCartクラスで管理する。 シリアル化+privateなメンバ シリアル化の際、privateなメンバは無視される模様。 [JsonInclude] アノテーションを付与すると、 シリアル化対象 になる。 図 privateなメンバもシリアル化 正解例をあげておきます。 Program.cs Sessionオブジェクトが使えるように設定。 いままでどおり 。 SessionExtensions.cs いままでどおり 。 Item.cs コーヒー、食べ物情報を受け渡すためのクラス。 SelectedItem.cs 選択されたコーヒー、食べ物情報を受け渡すためのクラス。 読み取り専用の小計用プロパティ(SubTotalプロパティ)が新ネタ。 Cart.cs ショッピングカート的なクラス。 選択済み商品に付与する行番号的データはRowIdプロパティで管理。 Index.cshtml.cs 選択済み商品リストへの追加や削除はCartクラスが行うため、ここはシンプルになった。 Index.csht...