title: Does ASP.NET MVC form post autopopulate fields?
body: <p>I have a form like ...</p>
  
  <pre><code>@using (Html.BeginForm("create", "Account", FormMethod.Post, new { id = "accountform_form" }))
  {
      @Html.TextBoxFor(e =&gt; e.ShipFirstName)
      ...
  }
  </code></pre>
  
  <p>while testing, I was surprised to see the field retained its value on postback even without me assigning it to the view-model.  Using the debugger, the value for <code>ShipFirstName</code> is <code>null</code> right at the end of the action when returning the view, so why would it show the value that was in the field?  Have I been unnecessarily assigning posted values to view-model properties all this time?  Or is there something else going on?</p>
  
  <p><strong>Update:</strong> the action is like so...</p>
  
  <pre><code>[HttpPost]
  public ViewResult Create(AccountFormModel postModel)
  {
      var model = new AccountFormModel(postModel, stuff, stuff);  //I use posted values and paramters to create the actual view model
      return view(model);
  }
  </code></pre>
  
  <p>So, I see the <code>GET</code> form, enter values, say I enter a field and leave a required field blank, submit, the resulting page has the value I entered in the other field, who's putting it there when in the model it's <code>null</code>?</p>