10月3日(木)1、2コマ目
今日、やったこと
- MVCとは
- コントローラークラス
- クエリパラメータ、パスパラメータ
- ビュー
- ViewData
今日のホワイトボード
この授業は
前期のASP.NET CoreのRazorページを使ったWebアプリケーションにMVCモデルを追加。
.Net側で結構いろいろやってくれるのはいいけど、ルールがいろいろとあるので、下手をするとなぜ動くのかがまったくわからない状態になるので注意。
MVCモデル
アプリケーションをモデル(M)、ビュー(V)、コントローラー(C)の3つの役割に分割して作成するアプリケーションのアーキテクチャの1つ。
前期のRazorページをMVCモデルにあてはめると下図のようになる。
|
| 図 前期のRazorページアプリケーションをMVCモデルにあてはめると |
|
| 図 MVCの役割 |
②コントローラーはモデルを使って必要なデータをDBから取得
③コントローラーはビューに必要なデータを渡す
④クライアントにビューを返信
コントローラーを使う
どのコントローラーのアクションメソッドを実行するかはURLで決まる。
|
| 図 URLとコントローラークラス、アクションメソッドの関係 |
リクエスト時にデータを渡す(クエリパラメーター)
URLに
http://・・?パラメータ名=値&パラメータ名=値
と?のあとにパラメータ名と値のセットを指定してサーバーにデータを渡すことができる。これがクエリパラメータ。
クエリパラメータはコントローラが受け取る。アクションメソッドに同名の引数があれば渡される。
|
| 図 クエリパラメータ |
[練習]クエリパラメータを使う
URL http://localhost:xxxx/Calcurator?min=x1&max=x2 でアクセスすると
”x1以上、x2以下の偶数はxxx個です”と表示する。
|
| 図 [練習]クエリパラメータを使う |
[コントローラー]CalcuratorController.cs
パスパラメータを使う
クエリパラメータと同じようにURLの一部にパラメータを指定する。
パスパラメータはパスの一部がパラメータ。
Program.csでパスの最後にパラメータを1つつけることができるようになっている。
さらに、このパラメータは名前がidに決められている。
よって、アクションメソッドに引数idを用意すればパスパラメータを受け取ることができる。
|
| 図 パスパラメータ |
ビューを使う
コントローラーのアクションメソッドとビューは1対1で対応している。
|
| 図 コントローラークラスのアクションメソッドとビューの対応 |
[練習]ビューを使う
URL http://localhost:xxxx/Show/Table でアクセスすると3x3の表が表示される。
|
| 図 [練習]ビューを使う |
正解例をあげておきます。
[コントローラー]ShowController.cs
[ビュー]Show/Table.cshtml
コントローラーからビューにデータを渡す
方法はいろいろある。まずはViewDataを使う。
ViewDataは辞書型。キーとデータのペアを複数保持できる。
|
| 図 コントローラーからビューにデータを渡す(ViewDataを使う) |
午後もよろしく
今日は1日この授業です。








