Мені подобається точка екстенсивності MVC, що дозволяє переглядати моделі для реалізації IValidatableObject і додавати спеціальну перевірку.
Я намагаюся тримати мої контролери слабкими, оскільки цей код є єдиною логікою перевірки:
if (!ModelState.IsValid)
return View(loginViewModel);
Наприклад, модель перегляду входу реалізує IValidatableObject, отримує об'єкт ILoginValidator за допомогою конструкторської інжекції:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Здається, що Ninject, введення інстанцій у переглянуті моделі насправді не є звичайною практикою, може бути навіть анти-закономірністю?
Це хороший підхід? Чи є кращий?