5月24日(火)1、2コマ目 リンクを取得 Facebook × Pinterest メール 他のアプリ 5月 23, 2022 今日、やったこと [確認テスト]POSTの確認テスト2 今日のテスト 解答例です。 Item.cs サイズ、色の選択データ受け渡しに利用。 Styleプロパティには選択時に<table>タグのclass属性に設定する値を格納。 Index.cshtml.cs Index.cshtml リンクを取得 Facebook × Pinterest メール 他のアプリ
6月7日(火)1、2コマ目 6月 06, 2022 今日の予習 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的に言えばパッケージ)ができる。プロジェクト右クリックで追加されたクラスはこの名前空間に属する... 続きを読む
6月28日(火)1、2コマ目 6月 27, 2022 今日、やったこと [確認テスト]拡張セッションクラスを使った課題(課題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月14日(火)1、2コマ目 6月 13, 2022 今日、やったこと 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」の続き(同じ商品が複数回選択されたときの対応)をやります。 続きを読む