Найпростішими словами, мені подобається думати про наступне:
Модель: строго виглядає та відчуває себе як ваша модель даних. Для всіх намірів і цілей це лише представлення класу вашої моделі даних. Він не знає про ваш вигляд або будь-які елементи у ньому. Тим не менш, він не повинен містити жодних декораторів атрибутів (тобто; Обов’язковий, Довжина тощо), які ви використовували б для свого подання.
Модель перегляду: Слугує зв’язувачем даних між вашим видом та вашою моделлю, а в багатьох випадках також є обгорткою для вашої моделі. Він не став би марним без подання, тому він, як правило, не може бути повторно використаний у кількох представленнях та контролерах, як стандартна модель.
Як приклад, ваша модель може мати такі властивості, які є прямими зображеннями вашого джерела даних:
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) }}