Мой опыт работы с MVC до сих пор состоит из рельсов.
Rails выполняет проверку на 100% в модели.
По большей части это работает очень хорошо. Я бы сказал, что 9 из 10 - это все, что тебе нужно.
Однако есть некоторые области, в которых то, что вы отправляете из формы, не соответствует вашей модели должным образом. Возможна дополнительная фильтрация / перестановка или т. Д.
Лучший способ разрешить эти ситуации, которые я нашел, - это создать объекты искусственной модели, которые в основном действуют как объекты модели, но отображают 1-к-1 с данными формы. Эти объекты искусственной модели на самом деле ничего не сохраняют, они просто хранилище данных с прикрепленными валидациями.
Примером такой вещи (в рельсах) является ActiveForm
Как только данные попадают в них (и они действительны), обычно довольно просто перенести их прямо в ваши реальные модели.