Поскольку ваш контроллер может иметь несколько представлений, каждое из которых имеет свою собственную ViewModel, вы обычно не создаете их с помощью внедрения contstructor.
Таким образом, вы можете зарегистрировать ваши ViewModel в IoC, но это будет означать предоставление локатора службы в вашем контроллере для получения экземпляра ViewModel.
builder.Register<MyViewModel> ().As<IMyViewModel> ().FactoryScoped ();
и в вашем контроллере
var MyViewModel = ContainerProvider.RequestContainer.Resolve<IMyViewModel> ();
это не типичный способ управления ViewModel для ваших контроллеров, если вы не хотите каким-либо образом сделать их динамичными.
В большинстве случаев вы просто создаете экземпляр вашей ViewModel в своих методах контроллера
public ActionResult Details ()
{
var model = new MyViewModel ();
return View (model);
}