Podoba mi się punkt rozszerzalności MVC, pozwalający modelom widoków na implementację IValidatableObject i dodanie niestandardowej weryfikacji.
Staram się, aby moje Kontrolery były szczupłe, ponieważ ten kod jest jedyną logiką sprawdzania poprawności:
if (!ModelState.IsValid)
return View(loginViewModel);
Na przykład model widoku logowania implementuje IValidatableObject, pobiera obiekt ILoginValidator poprzez wstrzyknięcie konstruktora:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Wygląda na to, że Ninject, wstrzykiwanie instancji do modeli widoku nie jest tak naprawdę powszechną praktyką, może nawet być anty-wzorem?
Czy to dobre podejście? Czy jest lepszy?