Saya suka titik ekstensi MVC, memungkinkan model tampilan untuk mengimplementasikan IValidatableObject, dan menambahkan validasi khusus.
Saya mencoba membuat Controllers tetap ramping, memiliki kode ini menjadi satu-satunya logika validasi:
if (!ModelState.IsValid)
return View(loginViewModel);
Misalnya model tampilan masuk mengimplementasikan IValidatableObject, mendapatkan objek ILoginValidator melalui injeksi konstruktor:
public interface ILoginValidator
{
bool UserExists(string email);
bool IsLoginValid(string userName, string password);
}
Tampaknya Ninject, menyuntikkan contoh dalam model tampilan bukan benar-benar praktik umum, bahkan mungkin anti-pola?
Apakah ini pendekatan yang baik? Apakah ada yang lebih baik?