- ブラウザからのリクエストは、URL で指定されたコントローラクラスのアクションメソッドで処理される
- 例えば、ブラウザから http://xxx.xxx.xxx/Sample01/GetAuthors/ という URL を呼び出すと、Sample01Controller.cs というクラスの、GetAuthors?() というメソッドが呼び出される
- 第一引数でコントローラクラス名を指定し、第二引数でアクションメソッド名を指定
- このメソッドの中では、ビジネスロジッククラスやデータアクセスクラスを呼び出してデータベースからデータを取り出したり、処理結果をビューに引き渡したりする。
- クライアントに送り返す HTML データは、対応するビューファイル(.cshtml ファイル)により作成される。
- コントローラクラスからデータを受け取り、それを使って、クライアントに送り返す HTML ページを作成する。
- ASP.NET MVC では、モデルに相当するものが何であるのかは決まっていない
- ”MVC” = Model + View + Controller という名前がついているものの、ASP.NET MVC において明確に扱いが決まっているのは Controller と View のみであり、Model が何であるのかの定義はない
- 一般的には、以下のうちのいずれか(または複数)が Model に相当
- データベースとやり取りされるデータの構造(=EF のデータモデル)
- ビューに対して引き渡すデータの構造(=ビューモデル)
- クライアントから送られてくるデータの構造(=リクエストパラメータバインディングのモデル)
プロジェクトのファイル構成 †
- [プロジェクト名].csproj
- プロジェクトで使用するライブラリとバージョンを管理
- Program.cs ファイル
- Main() 関数が書かれており、Web サーバを起動するためのコードが書かれている
- Startup.cs ファイル
- ASP.NET ランタイムの初期化コードが書かれている
- wwwroot フォルダ ... 公開する静的コンテンツ(HTML ファイルや JPEG ファイルなど)を置く
- Models フォルダ ...
- Conrtoller フォルダ ...
- App_Data フォルダ ... データベースファイルを置くフォルダ。名前は App_Data でなくてもよい(昔の名残)
複数ModelをViewで使う †
- Viewで使いたい複数のModelを保持するModelを用意し、それをViewに渡す
ライブラリ †
- Microsoft.AspNetCore?.Mvc ASP.NET Core MVC 1.0 本体
- Microsoft.AspNetCore?.Mvc.TagHelpers? View ページの作成でタグヘルパーを使えるようにする
- Microsoft.AspNetCore?.StaticFiles? 静的ファイルを返せるようにするライブラリ
- Microsoft.EntityFrameworkCore? データアクセスライブラリ Entity Framework Core 1.0
- Microsoft.EntityFrameworkCore?.SqlServer? Entity Framework Core の SQL Server 接続ドライバ
|