ビューモデルでIValidatableObjectを実装し、カスタム検証を追加できるようにするMVCの拡張ポイントが気に入っています。
このコードを唯一の検証ロジックにして、コントローラーを無駄のないものにしようとしています。
if (!ModelState.IsValid)
return View(loginViewModel);
たとえば、ログインビューモデルはIValidatableObjectを実装し、コンストラクターインジェクションを介してILoginValidatorオブジェクトを取得します。
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
ビューモデルにインスタンスを注入するNinjectは、実際には一般的な慣行ではないようです。
これは良いアプローチですか?より良いものはありますか?