2009-06-02 22 views

Trả lời

2

EmployeesViewData.

Đó là những gì tôi sử dụng và những gì tôi đã thấy trong các ứng dụng mẫu.

Giới thiệu về ví dụ đã thêm của bạn: Imho tên của lớp phải chỉ định loại dữ liệu chứa trong đó. ".... IndexViewData" là khá vô nghĩa. Chính xác những gì được hiển thị trên trang đó? Cố gắng tóm tắt nó trong 1 hoặc 2 từ và thêm 'ViewData' đằng sau nó.

Hoặc chỉ cần lấy tên của bộ điều khiển và thả "chỉ mục". HomeViewData âm thanh tốt với tôi.

0

Tôi thích HomeViewModel, hoặc sử dụng ví dụ nhân viên trước đó, CreateEmployeeViewModel, EditEmployeeViewModel, vv Ý tưởng là "ViewModel" nhấn mạnh thực tế là chúng ta đang xử lý các vấn đề trình bày và làm mờ ViewModels từ bất kỳ đối tượng mô hình miền nào mà bạn có thể có.

1

Tôi cố gắng giữ cho tên mô hình bản trình bày không thuyết phục về loại bản trình bày mà chúng sẽ được trình bày. Tôi có thể sử dụng đối tượng mô hình của tôi cho một cái nhìn ASP.NET ban đầu, nhưng sau này tôi cũng có thể sử dụng nó trong một ứng dụng WCF hoặc WinForms. Tôi cố gắng để đặt tên cho mô hình của tôi như vậy mà họ logic mô tả những gì họ có, mà không làm lẫn lộn chúng với "ViewData", "ViewModel", "Mô hình", vv

Ví dụ:

ProductsWithPageInfo 
ProductWithAttributesAndTags 
ClientAndBillingDetail 
UserAccountWithAssociatedGroups 

vv

+0

Bạn đang làm gì nếu bạn có một trang có nhiều trang trong số đó, hãy nói một trang có ProductWithPageInfo cũng cần ProductWithAttributesAndTags? – Alex

+0

Vâng, các loại này đã được tổng hợp các loại khác. Ví dụ, ProductsWithPageInfo có một số ILI , int PageNumber và int PageCount. Mỗi đối tượng "mô hình" trình bày chứa mọi thứ cần thiết để hiển thị một chế độ xem cụ thể. Đôi khi, nếu có nhiều nội dung trong một mô hình, tôi sẽ thêm Etc vào cuối: ProductAttributesPurchaseHistoryEtc, trong đó Etc có nghĩa là các chi tiết nhỏ (như số trang và số đếm) không cần phải được đại diện trong tên của lớp học. Trong trường hợp ví dụ của bạn: ProductsWithAttributesAndTagsEtc – jrista

0

Tôi đã sử dụng thuật ngữ Phong bì như một phần tên của mình, mà tôi đã bắt đầu sử dụng ngay trước khi tôi đọc chương 1 của cuốn sách Wrox và khám phá ra cụm từ được chấp nhận phổ biến hơn là ViewModel.

Tuy nhiên, những ViewEnvelopes mà tôi tạo ra chỉ cho đóng gói rất đơn giản khi tôi có hai hoặc nhiều hơn (thường không liên quan) mô hình mạnh mẽ gõ tôi muốn bàn giao cho View của tôi. Họ làm không chứa bất kỳ chức năng nào khác --- phong bì chỉ được dùng làm cơ chế phân phối theo nghĩa này, trong khi khái niệm ViewModel, đối với tôi, có vẻ ít mô tả hơn về cách tôi sử dụng nó, và cũng có thể mơ hồ hơn mục đích thực sự của nó là gì.

Tôi có thể tạo, ví dụ: lớp CustomerUpdateEnvelope chỉ tồn tại để phân phối đối tượng Khách hàng và đối tượng NewsTicker không liên quan, ví dụ như chế độ xem Cập nhật khách hàng của tôi.

21

tôi sử dụng mô hình sau đây vì nó là rõ ràng và rõ ràng:

  • mẫu: Foo
  • Xem: FooView
  • ViewModel: FooViewModel
0

Thay trễ cho chủ đề cụ thể này, nhưng Tôi đã viết một vài đề xuất chi tiết hơn một chút về ViewModel naming conventions trong một bài đăng trên blog, điều này có thể hữu ích cho người khác.

Các vấn đề liên quan