title: ASP.Net MVC ModelBindingContext class-- how are its model values populated?
body: <p>I'm scratching my head a bit at how model binders do their work in ASP.Net MVC.  </p>
  
  <p>To be specific, the BindModel() method has a ModelBindingContext parameter that holds the model name and type, but I don't understand how the ModelBindingContext receives these values.  </p>
  
  <p>An MVC model has to be populated from posted form values or query string parameters, or other sources of data.  But what mechanism determines the model type handed to the ModelBindingContext, and how is one model type chosen over another model type, over even (say) a simple list containing the individual posted values?  </p>
  
  <p>It just appears to me the ModelBindingContext "knows" the type of model it's being handed, and I'm not sure where that's coming from or the workflow involved in populating it.</p>