title: Form Data always Null from Ajax.BeginForm when Model is a collection
body: <p>C# .net framework 4.7.2, Web Project based on Umbraco 8.</p>
  <p>I have a partial that displays a form for each item in a List&lt;&gt;. Each form is using Ajax.BeginForm. They all display historical data correctly. However, when no records are found by the controller an empty form is displayed to be filled in and submitted.  If the Model for the page is of type ModelA, each item in the collection of interest is of type ModelB.  If I submit the form it hits the controller correctly but the submitted data is always null. That's whether I use ModelA and query the collection, or ModelB.  I'm concerned I've approached the problem from the wrong angle. Is this possible or do I need to reconsider the architecture?</p>
  <pre><code>@using Core.Models
  @using ContentModels = Umbraco.Web.PublishedModels;
  
  
  @if (Model.Results != null) {
      foreach (TestResult result in Model.Results) {  //ModelB
          &lt;div&gt;
              @{
                  var ajaxOptions = new AjaxOptions{
                      OnSuccess = &quot;feedback&quot;,
                      HttpMethod = &quot;POST&quot;,
                      UpdateTargetId = &quot;saveResult&quot;
                  };                
                  using (Ajax.BeginForm(&quot;CreateItem&quot;, &quot;MySurface&quot;, ajaxOptions)) {
                      @Html.AntiForgeryToken()
                      &lt;div&gt;
                          &lt;label for=&quot;@result.ItemA&quot;&gt;Tick if passed:&lt;/label&gt;
                          @Html.TextBoxFor(x =&gt; result.ItemA)
                      &lt;/div&gt;
                      &lt;div&gt;
                          &lt;label for=&quot;@result.ItemB&quot;&gt;Tick if passed:&lt;/label&gt;
                          @Html.TextBoxFor(x =&gt; result.ItemB)
                      &lt;/div&gt;
                      &lt;div&gt;
                          &lt;input type=&quot;submit&quot; value=&quot;Save&quot;&gt;
                      &lt;/div&gt;                     
                  }
              }
          &lt;/div&gt;
      }
  }
  </code></pre>
  <p>Models</p>
  <pre><code>public class ModelA {
      public List&lt;ModelB&gt; Results { get; set; }
  }
  
  public class ModelB {
      public string ItemA { get; set; }
      public string ItemB { get; set; }
  }
  </code></pre>
  <p>Controller</p>
  <pre><code>[HttpPost]
  public JsonResult CreateItem(ModelB testData) {  //testData is always null whether ModelA or ModelB
  
      if (!ModelState.IsValid)
      {
          return Json(new { success = false });
      }            
  
      // Do things with data
  
      // return something
  }
  </code></pre>
  <p>All advice appreciated.</p>