title: Model not populating on POST
body: <p>I created a simple class to test this directly, on the Edit POST action I was under the impression if a property is not in the form it will use the value which exists in the database already, instead it is getting set to null and overwriting any values.</p>
  
  <p>This is from the scaffold generation, lets say I comment out Password and Password Confirmation because I don't want them to edit it, so they will get left out of the POST values.</p>
  
  <pre><code>@using (Html.BeginForm())
  {
      @Html.AntiForgeryToken()
  
      &lt;div class="form-horizontal"&gt;
          &lt;h4&gt;User&lt;/h4&gt;
          &lt;hr /&gt;
          @Html.ValidationSummary(true)
          @Html.HiddenFor(model =&gt; model.ID)
  
          &lt;div class="form-group"&gt;
              @Html.LabelFor(model =&gt; model.Email, new { @class = "control-label col-md-2" })
              &lt;div class="col-md-10"&gt;
                  @Html.EditorFor(model =&gt; model.Email)
                  @Html.ValidationMessageFor(model =&gt; model.Email)
              &lt;/div&gt;
          &lt;/div&gt;
  
          &lt;div class="form-group"&gt;
              @Html.LabelFor(model =&gt; model.FirstName, new { @class = "control-label col-md-2" })
             &lt;div class="col-md-10"&gt;
                  @Html.EditorFor(model =&gt; model.FirstName)
                  @Html.ValidationMessageFor(model =&gt; model.FirstName)
              &lt;/div&gt;
          &lt;/div&gt;
  
          &lt;div class="form-group"&gt;
              @Html.LabelFor(model =&gt; model.LastName, new { @class = "control-label col-md-2" })
              &lt;div class="col-md-10"&gt;
                  @Html.EditorFor(model =&gt; model.LastName)
                  @Html.ValidationMessageFor(model =&gt; model.LastName)
              &lt;/div&gt;
          &lt;/div&gt;
  
          @*&lt;div class="form-group"&gt;
              @Html.LabelFor(model =&gt; model.Password, new { @class = "control-label col-md-2" })
              &lt;div class="col-md-10"&gt;
                  @Html.EditorFor(model =&gt; model.Password)
                  @Html.ValidationMessageFor(model =&gt; model.Password)
              &lt;/div&gt;
          &lt;/div&gt;
  
          &lt;div class="form-group"&gt;
              @Html.LabelFor(model =&gt; model.PasswordConfirmation, new { @class = "control-label col-md-2" })
              &lt;div class="col-md-10"&gt;
                  @Html.EditorFor(model =&gt; model.PasswordConfirmation)
                  @Html.ValidationMessageFor(model =&gt; model.PasswordConfirmation)
              &lt;/div&gt;
          &lt;/div&gt;*@
  
          &lt;div class="form-group"&gt;
              &lt;div class="col-md-offset-2 col-md-10"&gt;
                  &lt;input type="submit" value="Save" class="btn btn-default" /&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/div&gt;
  }
  </code></pre>
  
  <p>So the request would look like this:</p>
  
  <pre><code>__RequestVerificationToken=wcxt2SbPmLuI-FzGh7b0okDgfFIXacVKnvvuYpVkgJjpNEAgCbMzHTeMQv61xhbxch0kId6nh6mK-qoKML3CHpLOfk1SawIQIpdtVicWkys1&amp;ID=1&amp;Email=foo.bar%40test.com&amp;FirstName=foo&amp;LastName=bar
  </code></pre>
  
  <p>And here I simply want to save the values that were edited and any values which were not included use the original values instead.</p>
  
  <pre><code>[HttpPost]
  [ValidateAntiForgeryToken]
  public ActionResult Edit([Bind(Include="ID,Email,FirstName,LastName,Password,PasswordConfirmation")] User user)
  {
      if (ModelState.IsValid)
      {
          db.Entry(user).State = EntityState.Modified;
          db.SaveChanges();
          return RedirectToAction("Index");
      }
      return View(user);
  }
  </code></pre>
  
  <p>This is just an example to help me understand how to object gets populated when it's not in the form, if anyone could elaborate or point to resources which clearly show how the model is populated when the values aren't explicitly in the POST request that would be awesome.</p>