Từ trong ra ngoài, đây là những MVC ứng dụng lớp của chúng tôi:ASP.NET MVC: Bạn lắp ráp mô hình xem ở đâu cho chế độ xem?
- MS SQL/Bàn/xem/lưu Procs
- Entity Framework 4.1 (ORM) với POCO hệ
- Repository
- Service (truy xuất) và Chức năng Điều khiển (Lưu)
- Định tuyến -> Bộ điều khiển -> Dao cạo Xem
- (khách hàng) JQuery Ajax với Knockout.js (MVVM)
Mọi thứ đều tốt đẹp cho đến khi tôi cần phải tạo ra một ViewModel duy nhất cho bước 5 để nuôi cả hai quan điểm Razor cũng như JSON/Knockout ViewModel:
- header bao gồm tất cả Thả xuống tùy chọn danh sách và lựa chọn cho các lĩnh vực dưới đây
- Items - một mảng của bất cứ điều gì chúng tôi gửi tới khách hàng đó trở thành ViewModel
Kể từ khi điều khiển sẽ không có quyền truy cập vào Repository trực tiếp, Điều này có nghĩa là tôi tạo ra một dịch vụ cho mỗi một mỗi lần xem cho phép chỉnh sửa nội dung? Tôi cần lấy POCO từ kho lưu trữ cộng với tất cả các tùy chọn cho từng loại trường khi cần thiết.
Có vẻ như không cần thiết để tạo các dịch vụ riêng biệt cho từng chế độ xem. Ví dụ, một viewModel để chỉnh sửa một địa chỉ và một viewModel riêng biệt để chỉnh sửa một thuộc tính bất động sản cũng có một địa chỉ. Chúng tôi có thể có hàng chục mẫu chỉnh sửa cùng địa chỉ POCO.
Để làm cho câu hỏi này dễ trả lời hơn, cho phép Bộ điều khiển truy cập trực tiếp vào kho lưu trữ một trừu tượng bị rò rỉ?
bạn có thích loại trực tiếp không? tôi đã luôn luôn muốn tìm một lý do để sử dụng nó, và không bao giờ có. –
@nathan Bạn nên kiểm tra video này http://channel9.msdn.com/events/mix/mix11/frm08. Nó sẽ giúp tìm lý do để sử dụng nó. Nó làm giảm mã xuống còn một nửa. –