Шаблоны проектирования, на мой взгляд, являются не жесткими концепциями, а скорее рекомендациями, которые помогут вам лучше спроектировать приложение. Шаблон проектирования Model-View-ViewModel (MVVM) происходит от WPF, где существует очень надежная структура Bata Binding, которая упростила шаблон. Идея состоит в том, что у вас есть бизнес-данные в вашей модели, но, поскольку часто вы просматриваете определенные данные (т.е. текущий выбранный элемент в древовидном элементе управления), которые не принадлежат модели, вы создали объекты модели представления, которые обертывают вашу модель, но модели представления также содержали данные о состоянии конкретного вида. Таким образом, ваши виды могут напрямую связываться с моделями видов, а не с объектами моделей, что обеспечивает чистоту моделей (их легко тестировать, обслуживать и т. Д.).
Asp.net MVC отличается тем, что привязка данных в представлениях далеко не так мощна, как в WPF. В WPF вы могли бы реализовать большую часть взаимодействия вашего графического интерфейса и модели с помощью привязки данных, что сделало модели представлений полезными. Но в Asp.net MVC ваши контроллеры предназначены для этого, и поскольку привязка данных близка к несуществующей, я просто не вижу смысла в том, чтобы иметь обертки модели представления вокруг ваших объектов модели в Asp.net MVC.