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フォームのつづき。


