Проще говоря, мне нравится думать о следующем:
Модель: строго похоже на вашу модель данных. Для всех намерений и целей это всего лишь классовое представление вашей модели данных. Ему ничего не известно о вашем представлении или каких-либо элементах в вашем представлении. Тем не менее, он не должен содержать никаких декораторов атрибутов (например, Required, Length и т. Д.), Которые вы бы использовали для своего представления.
Просмотреть модель: служит связующим звеном между вашим представлением и вашей моделью, а во многих случаях также является оболочкой для вашей модели. Он был бы бесполезен без представления, поэтому он обычно не может повторно использоваться в нескольких представлениях и контроллерах, как стандартная модель.
Например, ваша Модель может иметь следующие свойства, которые являются прямым представлением вашего источника данных:
public string FirstName { get; set; }
public string LastName { get; set; }
Теперь, поскольку ваша модель представления привязана к вашему представлению, она может иметь следующее свойство, которое объединяет поля FirstName и LastName модели в одну строку:
[Display(Name = "Customer Name")]
public string CustomerFullName { get { return String.Format("{0} {1}", myModel.FirstName, myModel.LastName) }}