title: How does the ASP.NET MVC UpdateModel() method work?
body: <p>I'm working on my first .NET MVC application and using the NerdDinner tutorial as a reference point. One point that is intriguing me at the moment is the <code>UpdateModel()</code> method. (I don't like using things I don't really understand.)</p>
  
  <p>Taken from the <a href="http://nerddinnerbook.s3.amazonaws.com/Part5.htm" rel="noreferrer">NerdDinner tutorial</a> - </p>
  
  <pre><code>//
  // POST: /Dinners/Edit/2
  
  [AcceptVerbs(HttpVerbs.Post)]
  public ActionResult Edit(int id, FormCollection formValues) {
  
      Dinner dinner = dinnerRepository.GetDinner(id);
  
      UpdateModel(dinner);
  
      dinnerRepository.Save();
  
      return RedirectToAction("Details", new { id = dinner.DinnerID });
  }
  </code></pre>
  
  <p>My main question is how does the <code>UpdateModel()</code> get access to the formValues passed in the Edit method? Why is the collection not passed in explicitly as a parameter to the method?</p>