2010-06-10 46 views
9

Tôi đang sử dụng ASP.NET MVC với các lớp Entity Framework POCO và khung công tác FluentValidation. Nó hoạt động tốt và quá trình xác thực đang diễn ra (như thể tôi đang sử dụng DataAnnotations). Tôi thậm chí đã nhận được xác thực phía máy khách làm việc. Và tôi khá hài lòng với nó.Sử dụng ViewModel trong ASP.NET MVC với FluentValidation

Vì đây là một ứng dụng thử nghiệm, tôi chỉ viết để xem liệu tôi có thể có công nghệ mới làm việc cùng nhau không (và tìm hiểu chúng trên đường đi), bây giờ tôi đã sẵn sàng thử nghiệm bằng cách sử dụng ViewModels thay vì chỉ chuyển Mô hình thực tế đến chế độ xem. Tôi đang lên kế hoạch sử dụng một cái gì đó như AutoMapper trong dịch vụ của tôi để làm các bản đồ qua lại từ Model để ViewModel nhưng tôi có một câu hỏi đầu tiên.

Điều này sẽ ảnh hưởng đến việc xác thực của tôi như thế nào? Các lớp xác nhận của tôi (viết bằng FluentValidation) có được viết trên ViewModel thay vì Mô hình không? Hay nó cần phải xảy ra ở cả hai nơi? Một trong những giao dịch lớn về DataAnnotations (và FluentValidation) là bạn có thể xác thực ở một nơi có thể hoạt động ở mọi nơi. Và nó đáp ứng lời hứa đó (chủ yếu), nhưng nếu tôi bắt đầu sử dụng ViewModels, tôi có bị mất khả năng đó và phải quay trở lại để xác nhận ở hai nơi không?

Hoặc tôi chỉ đang nghĩ về điều đó sai?

Trả lời

4

Hoặc tôi chỉ đang nghĩ về nó sai?

lẽ;)

Nếu bạn thêm tất cả các mã xác nhận để ViewModels của bạn, bạn muốn chỉ được xác nhận họ thay vì mô hình thực tế của bạn. Tất cả thay đổi thực sự của bạn là đối tượng nào có thể nhập trạng thái không hợp lệ.

Hiện tại tôi rất vui vì chiếc bánh chỉ xác thực Chế độ xem và sau đó chuyển thông tin đó trở lại lớp Mô hình và DAO thực tế. Có hay không tên miền của bạn có thể nhập một trạng thái không hợp lệ là một chủ đề gây tranh cãi mặc dù cho đến nay kỹ thuật này đang làm việc tuyệt vời cho tôi. Xác nhận ở một nơi và không có đối tượng không hợp lệ trong cửa hàng kiên trì của tôi.

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