title: MVC model binding keeps values NULL
body: <p>I'm trying to get custom model binding to work, but for some reason the values aren't set. The code seems ligit when comparing it to working code, but still it doesnt bind. I guess it some trivial thing i'm missing.</p>
  
  <p>Custom model:</p>
  
  <pre><code>//Cluster is from Entity Framework
  
  //BaseViewModelAdmin defines:
  public List&lt;KeyValuePair&lt;string, string&gt;&gt; MenuItems;
  public IPrincipal CurrentUser = null;
  public Foundation Foundation; //also from Entity Framework
  
  public class AdminClusterCreateModel : BaseViewModelAdmin
  {
      public Cluster Item;
      public AdminClusterCreateModel()
      {
          Item = new Cluster();
      }
  }
  </code></pre>
  
  <p>The view form looks like:</p>
  
  <pre><code>@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
  
    &lt;fieldset&gt;
        &lt;legend&gt;Cluster&lt;/legend&gt;
  
        &lt;div class="editor-label"&gt;
            @Html.LabelFor(model =&gt; model.Item.Active)
        &lt;/div&gt;
        &lt;div class="editor-field"&gt;
            @Html.EditorFor(model =&gt; model.Item.Active)
            @Html.ValidationMessageFor(model =&gt; model.Item.Active)
        &lt;/div&gt;
  
  
        &lt;div class="editor-label"&gt;
            @Html.LabelFor(model =&gt; model.Item.Name)
        &lt;/div&gt;
        &lt;div class="editor-field"&gt;
            @Html.EditorFor(model =&gt; model.Item.Name)
            @Html.ValidationMessageFor(model =&gt; model.Item.Name)
        &lt;/div&gt;
  
        &lt;p&gt;
            &lt;input type="submit" value="Create" /&gt;
        &lt;/p&gt;
    &lt;/fieldset&gt;
  }
  </code></pre>
  
  <p>And the controller:</p>
  
  <pre><code>[HttpPost]
  public ActionResult Create(AdminClusterCreateModel model, FormCollection form)
  {
      if(ModelState.IsValid) //true
      {
          var test = form["Item.Name"]; //Value is correct from form (EG: Test)
          UpdateModel(model);  //no error
      }
  
      //At this point model.Item.Name = null &lt;--- WHY?
  
      return View(model);
  }
  </code></pre>
  
  <p>Cluster on request</p>
  
  <pre><code>public partial class Cluster
  {
      public Cluster()
      {
          this.Team = new HashSet&lt;Team&gt;();
      }
  
      public long Id { get; set; }
      public System.DateTime Created { get; set; }
      public System.DateTime Modified { get; set; }
      public bool Active { get; set; }
      public long FoundationId { get; set; }
      public string Name { get; set; }
  
      public virtual Foundation Foundation { get; set; }
      public virtual ICollection&lt;Team&gt; Team { get; set; }
  }
  </code></pre>