投稿

6月, 2026の投稿を表示しています

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...

6月2日(火)1、2コマ目

イメージ
今日、やったこと [練習問題]チェックボックス+複数ボタン [練習問題 解説]チェックボックス+複数ボタン [サンプルアプリケーション作成]ショッピングサイト的なサイト 今日のホワイトボード [練習問題 解説]チェックボックス+複数ボタン 追加仕様 同じ色が重複して選択されても、1つしか表示しない。 図 追加仕様(重複選択時) 正解例をあげておきます。 Color.cs 色情報を扱うためのクラス。 Index.cshtml.cs OnPost()の引数について 〇選択された色 チェックボックスは複数選択可。よって、配列に。 また、選択されないこともある。よって、null許容に。 〇ボタン ボタンは機能で分類すると、追加と削除の2種類。 削除ボタンクリック時は、削除対象のIDが渡される。 選択ボタン、削除ボタンで送信データが異なるため、引数も別に。 また、ボタンは1つしかクリックできない。クリックされないほうはnullに。よって、null許容に。 Index.cshtml listのnullチェックと要素数チェックは以下を参考に。 Listがnullチェック+要素数チェック list != null && list.Count > 0でもいいけど、?演算子を使うとシンプルに。 図 nullチェック+要素数チェック [サンプルアプリケーション作成]ショッピングサイト的なサイト 今までの内容を使って、ショッピングサイトを作る。 今日は途中までつくった。 Program.cs Sessionオブジェクトが使えるように設定。 いままでとおり 。 SessionExtensions.cs いままでとおり 。 Item.cs コーヒー、食べ物情報の受け渡し用クラス。 SelectedItem.cs 選択されたコーヒー...