ViewModel と聞くと MVVM パターンを連想します。 しかし、ASP.NET および ASP.NET Core の解説記事において ViewModel という言葉がよく使われており、「MVC パターンで ViewModel ?」とはてなマークがついてしまいました。 いろいろ調べた結果を私なりにまとめてみたいと思います。 一応環境としては ASP.NET Core (現時点のバージョンは 2.0) を前提としています。 ## MVC における ViewModel とは ViewModel は、特定の View で使用されるデータモデルを表すクラスです。 Model にあるクラスはドメインモデルであり、View に表示するデータモデルとは必ずしも一致しません。 また、それらには View に表示されないデータなども含まれていたりしますし、View には複数の Model から取得した