title: How to populate a ViewModel in ASP.NET MVC3
body: <p>In my Controller I have a <code>ProductInfo</code> class from my <strong>Domain Model</strong> and I need some of its information to populate my <strong>View Model</strong> <code>ProductStatsVM</code>.</p>
  
  <p>How do you populate the View Model? I heard three possible ways:</p>
  
  <ol>
  <li>Populate the View Model directly <strong>from the Controller</strong> (not good, I want to keep my Controller slim)</li>
  <li>By using a <strong>View Model constructor</strong> and pass the domain model as parameter. (I have to create a constructor for each domain model class I want to use)</li>
  <li>By using a <strong>Fill() method</strong>. (I saw it on the web, no idea how it works I guess this way the ViewModel should be aware of the Service Layer and creates coupling).</li>
  </ol>
  
  <p>I know there are tools like AutoMapper, which I am going to use indeed, but before I want to understand the logic on how to fill a View Model from the Controller without using any additional tool.</p>