Как следует из названия, ViewModel является моделью для представления, и я считаю их свойством уровня представления
Я бы хотел оставить его в папке Model в проекте MVC.
Например, представление PersonDetail может иметь PersonModel и PersonController.
Я сохраняю PersonModel в проекте MVC и возвращаю его из PersonController в представление.
На практике у меня есть много ViewModel в проекте пользовательского интерфейса, по крайней мере, один для каждого вида, и они действуют как DTO.