10月3日(木)1、2コマ目

今日、やったこと

  • MVCとは
  • コントローラークラス
  • クエリパラメータ、パスパラメータ
  • ビュー
  • ViewData

今日のホワイトボード

この授業は

前期のASP.NET CoreのRazorページを使ったWebアプリケーションにMVCモデルを追加。

.Net側で結構いろいろやってくれるのはいいけど、ルールがいろいろとあるので、下手をするとなぜ動くのかがまったくわからない状態になるので注意。


MVCモデル

アプリケーションをモデル(M)、ビュー(V)、コントローラー(C)の3つの役割に分割して作成するアプリケーションのアーキテクチャの1つ。

前期のRazorページをMVCモデルにあてはめると下図のようになる。

図 前期のRazorページアプリケーションをMVCモデルにあてはめると
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日この授業です。








 

このブログの人気の投稿

10月31日(木)1、2コマ目

10月15日(火)1、2コマ目

11月7日(木)1、2コマ目