Mi piace il punto di estensibilità di MVC, che consente ai modelli di visualizzazione di implementare IValidatableObject e di aggiungere la convalida personalizzata.
Cerco di mantenere i miei controllori snelli, visto che questo codice è l'unica logica di convalida:
if (!ModelState.IsValid)
return View(loginViewModel);
Ad esempio, un modello di vista di accesso implementa IValidatableObject, ottiene l'oggetto ILoginValidator tramite l'iniezione del costruttore:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Sembra che Ninject, iniettando istanze nei modelli di vista non sia davvero una pratica comune, potrebbe anche essere un anti-pattern?
È un buon approccio? C'è uno migliore?