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

今日、やったこと

  • [確認テスト 解説]ASP.NET Coreクエリパラメータ+DBアクセス
  • Webフォーム(HTTPのPOSTコマンド) 

今日のホワイトボード

[確認テスト 解説]ASP.NET Coreクエリパラメータ+DBアクセス

前回のおたすけサイトにも書いてますが、採点して気が付いたこと。

〇必要な検索パターン

単純に考えると
 ⓪全件検索
 ①xxx円以下で検索
 ②xxx円以上、xxx円以下で検索
 ③xxx円以上で検索
の4パターン。
ただ、”500円以下で検索”に、「商品の価格は0円以上であることを前提としてよい」とあるので、①の”xxx円以下で検索”は②の”xxx円以上、xxx円以下で検索”で対応できる。
よって、以下の3パターン。
  • 全件検索
  • xxx円以上、xxx円以下で検索
  • xxx円以上で検索
図 検索パターンを整理すると

〇メソッドのオーバーロード

C言語にはない機能。
関数の引数の数、型で呼び分けできるなら、同名のメソッド(関数)を複数作ることができる。
図 メソッド(関数)のオーバーロード

これをメソッド(関数)のオーバーロード(多重定義)と呼んでいる。
C#やJavaのような、C言語よりあとに登場したたいていの言語で使える。

〇クエリパラメータ

クライアントがサーバーをリクエストする際のURLにパラメータを含める仕組み。
?以降がクエリパラメータ
複数のパラメータが必要な場合は&でつなぐ
クエリパラメータは
 パラメータ名=値
のフォーマット。
図 クエリパラメータ
これから先はクエリパラメータを使う機会が減ります。
が、忘れたころに、突然、出てきますのでご注意ください。

Webフォーム(POSTコマンド)

Webでデータを入力・選択できる画面をWebフォームと呼んでいる。
Webフォームで入力・選択したデータはサーバーに送信される。このとき、多くの場合、HTTPのPOSTコマンドでリクエストする。

入力・選択内容は、サーバーに
 name属性値=value属性値
で送信される

完成版

とりあえず、完成版のソースをあげておきます。

[モデル]Group.cs

cs_グループマスタテーブルの情報を受け渡しするためのクラス。
cs_グループマスタテーブル1行 = Groupクラスの1インスタンス。

[モデル]Item.cs

cs_商品マスタテーブルの情報を受け渡しするためのクラス。
cs_商品マスタテーブル1行 = Itemクラスの1インスタンス。
※GroupプロパティはGroupクラス型

[データアクセス]GroupDAO.cs

cs_グループマスタテーブルアクセス用クラス。

[データアクセス]ItemDAO.cs

cs_商品マスタテーブルアクセス用クラス。

[コントローラ]Index.cshtml.cs

OnGet()、OnPost()、コンストラクタの3種類を使い分けがポイント。
メソッド名いつ実行される?補足
OnGet() GETコマンドリクエスト時 GETコマンドはリンクリックやブラウザにURLを指定してアクセスするとき。
OnPost() POSTコマンドリクエスト時 POSTコマンドはフォームでmethod=post指定時
コンストラクタ IndexModelクラスのインスタンス生成時 ASP.Net Coreでは、リクエスト毎にインスタンスを生成する。


[ビュー]Index.cshtml



[おはまりポイント]実行すると

<form>タグを使って、サーバーに送信する場合、~.cshtmlに以下の
 @AddTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
が必要。

次回は

Webフォームのつづき。

このブログの人気の投稿

1月23日(金)1、2コマ目

1月22日(木)2コマ目

2月17日(火)3コマ目