前々回、前回にわたり、まずコントローラーとビューを作成し、それらを組み合わせてHTMLベースのシンプルなWebページを作りました。この段階ではまだ、ビューは単純なHTMLファイルです。基本的なHTMLを出力する仕事しかしていないからです。MVC(Model-View-Controller)では、サーバーによって生成されたデータがHTMLに埋め込まれます。ここでモデルが登場するわけです。MVCアーキテクチャーでは、モデルはコントローラーによって生成され、ビューに渡されます。ビューはユーザーに対して関係するデータを出力します。前回の記事で見たように、特定のページに対してサーバー側で生成するデータが何もないのであればモデルは必要ありません。ひとたびデータが必要になれば、モデルを作成することになります。モデルとはいったいどんなものなのでしょうか?実際のところモデルが何になるかというのは開発者次第です。モデルはフレームワーク内のあらゆる種類のオブジェクトになりうるためです。実際、単純な文字列でもいいですし、クラスからインスタンス化された複雑なオブジェクトでもかまいません。ユーザーに関する情報を保持するUserクラスやゲストブックへの投稿を含むGuestbookEntryアイテムなどなどです。データベースから取得したデータを保持するクラスや、一つまたは複数のビューのために専用に作成したクラスもモデルになりえます。モデルの追加ではHelloMVCWorldプロジェクト(以前、コントローラー作成の記事で作成したプロジェクト)にモデルを追加しましょう。今回の例のため、プロジェクトにすでに定義されているものに頼らず、新しくモデルを作成しましょう。「Controllers」フォルダーにコントローラーを、「Views」フォルダーにビューを保存しているのと同様、「Models」というフォルダをプロジェクトのルートに作成します。新しいフォルダーを選択します。「Models」フォルダーを作ったらいよいよ実際のモデル作りです。説明したように、モデルは通常のクラスですので、クラスを追加しましょう。表示されたダイアログではクラス名をMovie.csと入力してください。このクラスは映画の情報を格納するクラスとして利用します。Studioは以下のような空のクラスを作成します。}}以下に示すように、基本的なプロパティを追加しましょう。}}これでモデルの準備は完了です。これまで説明したように、モデルはコントローラーによってインスタンス化します。前回作成したHomeControllerを開きましょう。Index()メソッドからビューを返すだけのものでした。View();}これを、モデルとともにビューを返すように変更します。View(movie);}変更点は二つ。Movieオブジェクトをインスタンス化し有名な某映画の情報を入れたこと、それをView()メソッドに引き渡したことです。これでモデルの情報がビュー内で利用できます。前回作成したIndex.cshtmlビューを覚えていますか?開いて中を見てください。前にも触れましたが、ビューはモデルなしでも機能します。モデルを使いたいときは、ビューの中で利用したいモデルについての情報をビューに伝える必要があります。以下のように、通常、ビューファイルの最上部にRazorの@modelディレクティブを用います。HelloMVCWorld.Models.Movieこれにより、送られてくるモデルがMovieモデルであることをビューに伝えました。この方法は少なくとも二つの利点があります。StudioのIntelliSense(コード補完機能)が働くことです。@Model.ReleaseDate.ToLongDateString()</body></html>マークアップの中でModelというキーワードを何回か参照していることがわかると思います。これによりビューに渡されたモデルに直接アクセスしています。今回のケースではMovieクラスのインスタンスになります。TitleやReleaseDateといったプロパティが使えるということです。F5を押してプロジェクトを実行してください。映画「ゴッドファーザー」の情報が出力されるはずです。@Model.Titleといったように、Modelの前に@(アットマーク)が付いていることにも気付いたかと思います。これらはすべてRazor構文です。これについては今後の章で詳しく説明します。まとめおめでとうございます。これでモデル・ビュー・コントローラー(MVC)を組み合わせた全貌が網羅できました。この時点ではまだ多くの概念について触れていませんが、大事なのは完全に機能し動作する実物をまず見ることです。背後に存在する細かい理屈はこれから見ていきます。UsLocalization。