What is ViewModel in ASP.NET MVC?

In ASP.NET MVC, ViewModel is a class that contains the fields which are represented in the strongly-typed view. It is used to pass data from controller to strongly-typed view.

Key Points about ViewModel

  • ViewModel contain fields that are represented in the view (for LabelFor, EditorFor, DisplayFor helpers)
  • ViewModel can have specific validation rules using data annotations.
  • ViewModel can have multiple entities or objects from different data models or data source.