Mir gefällt der Extnesibility Point von MVC, mit dem Ansichtsmodelle IValidatableObject implementieren und benutzerdefinierte Validierungen hinzufügen können.
Ich versuche, meine Controller schlank zu halten, wobei dieser Code die einzige Validierungslogik ist:
if (!ModelState.IsValid)
return View(loginViewModel);
Ein Anmeldeansichtsmodell implementiert beispielsweise IValidatableObject und ruft das ILoginValidator-Objekt über die Konstruktorinjektion ab:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Es scheint, dass Ninject, das Injizieren von Instanzen in Ansichtsmodelle, keine gängige Praxis ist, vielleicht sogar ein Anti-Pattern ist?
Ist das ein guter Ansatz? Gibt es eine bessere?