タイトル通りなのですが、どういう場合にViewModelを使用するのでしょうか。
私が見た例ではログイン認証の画面用にLoginViewModelを定義しその中にユーザー名とパスワード(パスワードにはDataTypeアノテーション)を設定していました。データアノテーションを設定できるのはViewModelの特権?
c#
1 public class LoginViewModel 2 { 3 [Required] 4 [DisplayName("ユーザー名")] 5 public string UserName { get; set; } 6 7 [Required] 8 [DisplayName("パスワード")] 9 [DataType(DataType.Password)] 10 public string Password { get; set; } 11 }
オンデマンドのビデオで勉強していたのですが、急に「ログイン画面の認証機能を実装するためにViewModelを作成します。」と言われても心の準備が出来ておらず理解できませんでした。
ViewModelの役割を自分なりに調べたのですが、
ビューモデルは、ビューで表されるフィールドのみで構成されたビューをドキュメント化します。
ビューモデルには、データアノテーションまたはIDataErrorInfoを使用して特定の検証ルールを含めることができます。
ビューモデルは、ビューの外観( LabelFor 、 EditorFor 、 DisplayForヘルパー)を定義します。
ビューモデルは、異なるデータベースエンティティの値を組み合わせることができます。
ビューモデルのテンプレートを簡単に指定して、DisplayForまたはEditorForヘルパーを使用してさまざまな場所で再利用することができます。
「ViewModel」と言っているくらいなので、なんとなく、Viewを作るためのModelだということは分かったのですが、これを読んでも私の脳みそでは理解できませんでした。
どういうことをしたいときにViewModelが活躍するんだ、とか、こういうときはViewModelを使うんだ、ということを教えていただけたら嬉しいです。
しょうもない質問かもしれませんが私にとっては知りたいことですのでどうかご教授よろしくお願いいたします。