Me gusta el punto de extnesibilidad de MVC, que permite ver modelos para implementar IValidatableObject y agregar validación personalizada.
Intento mantener mis controladores esbeltos, teniendo este código como la única lógica de validación:
if (!ModelState.IsValid)
return View(loginViewModel);
Por ejemplo, un modelo de vista de inicio de sesión implementa IValidatableObject, obtiene el objeto ILoginValidator a través de la inyección del constructor:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Parece que Ninject, inyectar instancias en modelos de vista no es realmente una práctica común, ¿puede ser incluso un antipatrón?
¿Es este un buen enfoque? Hay alguno mejor?