投稿

ラベル(セッション)が付いた投稿を表示しています

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

イメージ
前回のテストを採点して とりあえず、以下の3点を今後気を付けてください。 Itemクラスをサイズデータ受け渡しに使わない プロパティが同じ(ID, 名前, 価格)なので、Itemクラスをサイズデータ受け渡しのために使っている方がおられました。 Itemクラスから連想するのは「商品かな?」です。おそらく、サイズではないと思います。 このような使いまわしは直感的ではないため、やめたほうがいいです。 掟1 クラス名や変数名から連想されるデータだけを扱うこと! Index.cshtml.csのOnPost()にて① 選択された商品およびサイズを調べて、変数に代入するのですが、問題は変数名です。 Item target1 = null; Size target2 = null; のように、 target1 、 target2 と変数名からなんなのかがわからない方が結構おられました。 たとえば、 Item targetItem = null; Size targetSize = null; なら、変数名から対象商品だな、選択されたサイズだなとわかります。 変数名にかかわらず、クラス名、メソッド名、プロパティ名は名前からわかるようにしてください。 掟2 名前から実態がわかる変数名やクラス名、メソッド名を命名すること! Index.cshtml.csのOnPost()にて② 選択サイズによって価格の差額が決まります。 問題は商品の価格を計算、表示する部分です。 ご丁寧に int price = targetItem.Price; と変数を宣言したうえで、Tallでの金額を代入し、 price += targetSize.Price; とサイズによる差額を反映して strSelectedItem = "[" + targetItem.Id + "]" + targetItem.Name + ・・ + "(" + price + "円)"; で表示用文字列を作っている方がおられました。 変数priceは必要でしょうか? 以下で十分な気がします。 strSelected...

8月25日(火)1、2コマ目

イメージ
 今日、やったこと セッションを使ったアプリケーション作成[練習問題7] セッションを使ったアプリケーション作成[課題2] セッションを使ったアプリケーション作成[練習問題7] 作成するアプリケーションは以下のとおり。 図 練習問題7 ソースコード Startup.cs セッション用にいくつか設定を行う必要あり。 Item.cs 商品情報(id, 商品名)をひとまとめにして扱うためのクラス。 Index.cshtml Index.cshtml.cs セッションを使ったアプリケーション作成[課題2] 作成するアプリケーションは以下のとおり。 図 課題2(1ページ目) 図 課題2(2ページ目) ソースコード Startup.cs 練習問題7と同じ。 Coffee.cs 商品(コーヒー)の情報(id, 商品名, 価格)をひとまとめにして扱うためのクラス。 Size.cs サイズの情報(ID, 表示名, 差額)をひとまとめにして扱うためのクラス。 Index.cshtml Index.cshtml.cs

8月18日(火)1、2コマ目

イメージ
 今日、やったこと セッション 今日のホワイトボード (おさらいだけど)HTTPはリクエスト・レスポンスで完結 HTTPはリクエスト・レスポンスで完結する。同じクライアントからの複数のリクエストでサーバー側にデータを共有する仕組みはない。 実際は、リクエストをまたいだデータ共有ができないのは不便なので、アプリケーションサーバー(HTTPサーバーではなく、Webアプリケーションを実行する環境)で実現している。多くの環境ではセッションオブジェクトと呼んでいる。 図 HTTPの特徴、セッションオブジェクト Razorページでのセッション セッションオブジェクト取得 ~.cshtml、~.cshtml.csにて HttpContext.Session で取得可能。 セッションにデータを保存、取り出し 取得したセッションオブジェクトの以下のメソッドを使う。 〇保存する メソッド 引数 戻り値 役割 void SetInt32(string key, int value) key:保存データの名前 value:保存データ なし int型データをセッションオブジェクトに保存する void SetString(string key, string value) key:保存データの名前 value:保存データ なし string型データをセッションオブジェクトに保存する 〇取得する メソッド 引数 戻り値 役割 int GetInt32(string key) key:取り出す保存データの名前 ...