Tôi thích điểm mở rộng của MVC, cho phép các mô hình xem thực hiện IValiditableObject và thêm xác thực tùy chỉnh.
Tôi cố gắng giữ cho Bộ điều khiển của mình tinh gọn, có mã này là logic xác thực duy nhất:
if (!ModelState.IsValid)
return View(loginViewModel);
Ví dụ, một mô hình khung nhìn đăng nhập thực hiện IValiditableObject, lấy đối tượng ILoginValidator thông qua phương thức tiêm constructor:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Có vẻ như Ninject, tiêm phiên bản trong các mô hình xem không thực sự là một thông lệ, thậm chí có thể là một mô hình chống?
Đây có phải là một cách tiếp cận tốt? Có một cái tốt hơn?