arithma wroteYou can just refactor the transformation from the viewmodel to the model using an external to the controller helper class. Did you omit this from your consideration list?
I'm actually doing exactly that to entities that do not have many properties on them. So let's say there's a Message class, I wouldn't bother creating the message object inside the controller itself. I would simply do:
_service.SendMessage(model.Title, model.RecepientId, model.Body);
And the service class itself takes care of creating the message object and inserting it into the database. But when there are like 10 - 20 properties that are in play, it's really a pain to send them as parameters of a method in the service. In this case, I do it as such the method accepts an object (rather than primitive type arguments):
void CreateUser(User user);
But I donno, is that how this is done? Is it the "right way"?