Мне нравится точка расширяемости MVC, позволяющая представлениям моделей реализовывать IValidatableObject и добавлять настраиваемую проверку. Я стараюсь поддерживать свои контроллеры стройными, используя этот код в качестве единственной логики проверки: if (!ModelState.IsValid) return...