Are there any design patterns that describe how to create and manage ViewModels for asp.net MVC?
There are many tutorials surrounding MVC but one thing I don't see discussed much is the ViewModels (the M in MVC). There are of course multiple discussions about the separation of DataModels (or DomainModels) from ViewModels but one thing that I don't see much about is how we link these together and how we expose the models to the controllers.

So what I'm looking for is a Design pattern/s that describe:

1) How to create ViewModels from DataModels and back again if needed.

2) How to supply ViewModels to the controllers as they need them.

Bonus) If it uses DI, IoC Container and/or MEF.

So what do you think, dose this exist and is it described somewhere?
Are there any design patterns that describe how to create and manage ViewModels for asp.net MVC?
===

There are many tutorials surrounding MVC but one thing I don't see discussed much is the ViewModels (the M in MVC). There are of course multiple discussions about the separation of DataModels (or DomainModels) from ViewModels but one thing that I don't see much about is how we link these together and how we expose the models to the controllers.

So what I'm looking for is a Design pattern/s that describe:

1) How to create ViewModels from DataModels and back again if needed.

2) How to supply ViewModels to the controllers as they need them.

Bonus) If it uses DI, IoC Container and/or MEF.

So what do you think, dose this exist and is it described somewhere?