Gosto do ponto de extensibilidade do MVC, permitindo que os modelos de visualização implementem IValidatableObject e adicione validação personalizada.
Eu tento manter meus controladores magros, tendo esse código como a única lógica de validação:
if (!ModelState.IsValid)
return View(loginViewModel);
Por exemplo, um modelo de visualização de logon implementa IValidatableObject, obtém o objeto ILoginValidator via injeção do construtor:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Parece que o Ninject, injetar instâncias nos modelos de exibição não é realmente uma prática comum, pode até ser um anti-padrão?
Será esta uma boa abordagem? Existe um melhor?