Mi piace il punto di estensibilità di MVC, che consente ai modelli di vista di implementare IValidatableObject e aggiungere una convalida personalizzata.
Cerco di mantenere i miei controller snelli, avendo questo codice come unica logica di validazione:
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 in realtà una pratica comune, potrebbe anche essere un anti-pattern?
è un buon approccio? Ce n'è uno migliore?