10月6日(月)1コマ目
今日、やったこと
検索サイト作成
今日のホワイトボード
前期のASP.NET Core MVCのおさらいをしつつ、新ネタ(POSTコマンド)もやりました。
検索サイト構築
前期のASP.NET Core MVCは、クライアントがサーバーにリクエストする際、
下図左のように、
- GETコマンドでリクエスト
- リクエストするURLでサーバーのアクションメソッド呼び分け
- リクエストするURLのクエリパラメータ(パスパラメータ)でデータ送信
していた。
これを下図右のように、
- POSTコマンドでリクエスト
- データはクエリパラメータではなく、ボディ部で送信
するように改造する。
|
| 図 ASP.NET Core MVCでこれから作るアプリケーション |
下図のような、アプリケーションを作成する。
|
| 図 作成するサンプルアプリケーション |
Webフォーム
<form></form>のなかに、選択リスト(<select>タグ)や入力、選択(<input>タグ)、ボタン(<button>タグ)を配置。
|
| 図 Webフォーム |
Webフォームは、ボタン(type=submit)をクリックすると、<form>タグの
- method属性で指定したHTTPのコマンドで
- action属性で指定したパスを
リクエストする。
POSTコマンドでリクエストすると
サーバー側は、まずコントローラが処理を行う。
このとき呼び出されるメソッドは、リクエストされるパスからコントローラ、メソッドが決まる。
さらに、POSTコマンドを処理するメソッドには、[HttpPost]アノテーションが付与されている必要がある。
|
| 図 POSTコマンドリクエストに対応するアクションメソッド |
[設定ファイル]appsettings.json
DB接続に必要な接続文字列はここで設定。
[モデル]Models/Group.cs
CS_グループマスタテーブルに対応するクラス。
[モデル]Models/Item.cs
CS_商品マスタテーブルに対応するクラス。
[モデル]Data/SearchDbContext.cs
DbContext継承クラス。DBアクセスを担う。
[コントローラー]Controllers/SearchController.cs
[HttpPost]アノテーションが付与されたアクションメソッドはPOSTコマンド専用。
Program.cs
DI機能を使って、コントローラのコンストラクタ引数に渡すSearchDbContextクラスのインスタンス生成し、代入する。
[ビュー]Views/Search/Index.cshtml
検索条件に使うグループ一覧や、検索結果の商品一覧はコントローラからViewData経由でビューに渡される。
次回は
さらに新ネタViewModelを紹介。



