Nói một cách đơn giản nhất, tôi muốn nghĩ như sau:
Mô hình: Giao diện giống hệt mô hình dữ liệu của bạn. Đối với tất cả các ý định và mục đích, nó chỉ là đại diện lớp cho mô hình dữ liệu của bạn. Nó không biết về Chế độ xem của bạn hoặc bất kỳ yếu tố nào trong Chế độ xem của bạn. Điều đó nói rằng, nó không được chứa bất kỳ trình trang trí thuộc tính nào (tức là; Bắt buộc, Độ dài, v.v.) mà bạn sẽ sử dụng cho Chế độ xem của mình.
Chế độ xem Mô hình: Đóng vai trò là chất kết dính dữ liệu giữa Chế độ xem và Mô hình của bạn và trong nhiều trường hợp, cũng là một trình bao bọc cho Mô hình của bạn. Nó sẽ trở nên vô dụng nếu không có Chế độ xem, do đó, nó thường không thể sử dụng lại trên nhiều Chế độ xem và Bộ điều khiển như Mô hình tiêu chuẩn.
Ví dụ: Mô hình của bạn có thể có các thuộc tính sau, là các thuộc tính đại diện trực tiếp cho nguồn dữ liệu của bạn:
public string FirstName { get; set; }
public string LastName { get; set; }
Bây giờ, vì Mô hình Chế độ xem của bạn được liên kết với Chế độ xem của bạn, nó có thể có thuộc tính sau - thuộc tính này nối trường FirstName của Mô hình và trường LastName với nhau thành một chuỗi:
[Display(Name = "Customer Name")]
public string CustomerFullName { get { return String.Format("{0} {1}", myModel.FirstName, myModel.LastName) }}