Я начну с ответа на ваш вопрос № 3: да, при использовании моделей представлений добавляйте атрибуты проверки аннотации данных прямо в свойствах вашей модели представления.Как вы указали, модели представлений привязаны к пользовательскому интерфейсу, поэтому у них есть проблемы с представлением, и проверка выполняется исключительно для проверки входных данных пользовательского интерфейса.Атрибуты проверки, которые вы применяете здесь, будут автоматически вызываться платформой, и вы можете проверить ModelState.IsValid в вашем контроллере (на который вы также указали).
Что касается проверки объектов на вашем бизнес-уровне, существует множествоспособы сделать это.Например, вы могли бы также использовать аннотации данных и на объектах модели домена вашего бизнес-уровня.Вы также можете использовать другие инфраструктуры, такие как блок приложения для проверки Enterprise Library, Fluent Validation и т. Д. Но в этом случае вы, вероятно, будете делать явный вызов для проверки объектов вашего домена (и каждого из них).рамки имеет свой собственный механизм для этого).Я предполагаю, что ваше соответствие между вашими моделями представлений и моделями доменов (возможно, с чем-то вроде AutoMapper) приведено выше.
Сказав все это, в отношении вашего вопроса № 1, я бы не стал отключать модельпроверка связующего.Пусть эта производительность будет проверена на ваших моделях зрения как обычно.Сопоставьте модели представлений с вашими классами моделей доменов.Тогда не стесняйтесь выполнять дополнительный уровень проверки бизнес-объектов для вашей доменной модели.Вы можете даже не выполнять эту проверку в проекте MVC - она может быть инкапсулирована в бизнес-уровень, который есть у вас где-то еще в вашем приложении.