title: What's happening in TryUpdateModelAsync
body: <p>So I'm doing this <a href="https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/crud" rel="noreferrer">microsoft tutorial</a> on ASP.NET Core with EF 6 and it just went through updating a model through the edit-controller. </p>
  
  <p>There is this piece of code that have me really confused that I imagine (and perhaps hope) isn't as confusing to a lot of you.</p>
  
  <pre><code>var studentToUpdate = await _context.Students.SingleOrDefaultAsync(s =&gt; s.ID == id);
  
  if (await TryUpdateModelAsync&lt;Student&gt;(
            studentToUpdate, 
            "", 
             s =&gt; s.FirstMidName, s =&gt; s.LastName, s =&gt; s.EnrollmentDate))
  // goes on to save the context
  </code></pre>
  
  <p>So, the only thing this controller takes as parameter is the <code>int id</code> and that's how it gets a hold of the <code>studentToUpdate</code>. What I'm not entirely familiar with here, is where does it get the update-values from?</p>
  
  <p>What I know:  </p>
  
  <ul>
  <li><code>TryUpdateModelAsync&lt;Student&gt;</code>
  
  <ul>
  <li>first argument: model to update</li>
  <li>second argument: prefix (?) from reference: <em>The prefix to use when looking up values in the .</em></li>
  <li>third argument: a linq-statement which I suspect is related to the solution I'm looking for.</li>
  </ul></li>
  <li>Ran the debugger and before the function was executed <code>studentToUpdate.FirstMidNames</code> was <code>Carson</code>(original) but after the function had been executed it was <code>Carsey</code>(new). The string <code>Carsey</code> was always in the this>Request>Form>Results View (which held a list of all the values from the form).</li>
  </ul>
  
  <p>So I understand that the <code>TryUpdateModelAsync</code> function somehow uses the linq-statement and the form-result to get the new values for <code>studentToUpdate</code>, but I really don't see how and where it does this?</p>