投稿

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

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

イメージ
今日、やったこと [確認テスト]拡張セッションクラスを使った課題(課題4) 削除ボタン追加 今日のホワイトボード 削除ボタンを追加する [ポイント]  ボタンが複数ある場合、どのボタンがクリックされたかを判断するには? 図のように選択済み商品毎に削除ボタンを設けます。 図 削除ボタン追加 カートへボタン、削除ボタンと複数ボタンがありますが、 どのボタンをクリックしても、OnPost()メソッドが実行されます 。よって、 OnPost()ではどのボタンがクリックされたかを判定する 必要があります。 Startup.cs いままでどおり。 Sessionオブジェクトを使えるようにすること。 SessionExtensions.cs Sessionオブジェクトに拡張メソッドを追加。 いままでどおり。 Item.cs 商品情報受け渡し用クラス。 SelectedItem.cs 選択商品情報受け渡し用クラス。 Index.cshtml.cs OnPost()の引数に注目。 引数deleteは削除ボタンのvalue属性がセットされる。 string型にしているのは、削除ボタンがクリックされなかったとき(カートへボタンクリック時)にはnullがセットされる ため。これでカートへボタンがクリックされたか?削除ボタンがクリックされたか?を判定している。ちなみにもし、int型だと0がセットされる。 Index.cshtml 次回は この削除ボタンの評価用課題をやってもらいます。

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

今日、やったこと セッション演習問題その3 [課題]セッション課題その4 今日のソースコード セッション演習課題その3 前回のつづきです。 今回は、 選択済み商品と同じ商品が選択された場合、一覧表に新たに行を追加せず、数量のみ加算する をやりました。 変更したソースだけ載せておきます。 SelectedItem.cs 同じ商品化否かを判定するためのIsSame()メソッドを追加。 Index.cshtml.cs OnPost()メソッドにて、 同じ商品が選択商品リストにあるか? 選択商品リストに同じ商品があれば、数量加算 選択商品リストに同じ商品がなければ、選択商品リストに追加 を追加。 次回は 1コマ目はこの課題の続き。 

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

イメージ
今日、やったこと ISession拡張の練習問題 今日のソースコード 「razorページ練習9」 作成するモノは以下のイメージです。 図 「razorページ練習9」 Startup.cs Sessionオブジェクトを使うように設定。 SessionExtension.cs 以前と同じ。 Item.cs iPad情報(ID、商品名)をひとまとめにして扱うためのクラス。 SelectedItem.cs 選択したiPad情報(Itemクラス)、色をひとまとめにして扱うためのクラス。 Index.cshtml.cs Index.cshtml 「razorページ_課題3」 作成するモノのイメージです。 図 「razorページ 課題3」 Startup.cs Sessionオブジェクトが使えるように設定。 SessionExtension.cs いつもどおり。 Coffee.cs コーヒー情報(ID、商品名、価格)をひとまとめにして扱うためのクラス。 Size.cs サイズ情報(ID、名前、差額)をひとまとめにして扱うためのクラス。 SelectedItem.cs 選択商品情報(コーヒー、サイズ、数量)をひとまとめにして扱うためのクラス。 Index.cshtml.cs Index.cshtml 次回は 「razorページ 課題3」の続き(同じ商品が複数回選択されたときの対応)をやります。  

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

イメージ
今日の予習 ISessionを拡張 セッションオブジェクトはISessionクラス。データとして保存できるのは byte[] int string のみ。使いずらいので、ISessionクラスに拡張メソッドを追加して対応。 ISessionに以下の2つの拡張メソッドを追加しています。 T Get<T>(string key) void Set<T>(string key, T value) Tはセッションオブジェクトに格納するモノの型 。 今日、やったこと Sessionオブジェクトにいろいろな型のデータを格納する 今日のホワイトボード 拡張メソッドのGet<T> ()、Set<T> () 図 拡張メソッドのSet<T>()、Get<T>() 作成したサンプル セッションオブジェクトにSelectedItemクラスのListを格納する。 Startup.cs 前回と同じようにSessionオブジェクトを使うための設定を行う。 SelectedItem.cs 選択データ(商品名、松竹梅、数量)をまとめて格納するためのクラス。 SessionExtensions.cs 通常のSessionオブジェクトであるISessionにGet<T>()メソッド、Set<T>()メソッドを拡張メソッドとして追加する。 上のサンプルと同じ。 Index.cshtml.cs OnPost()メソッドにて、拡張メソッドのGet<T>()、Set<T>()を使っているところがポイント。 Set<T>()、Get<T>()のTにはセッションオブジェクトに格納するデータの型を指定する 。 Index.cshtml ここでも拡張メソッドのGet<T>()を使ってSessionオブジェクトから選択商品のリストを取得している。 プロジェクトと名前空間 プロジェクトを作成すると同名の名前空間(Java的に言えばパッケージ)ができる。プロジェクト右クリックで追加されたクラスはこの名前空間に属する...