title: Knockout not sending List of object from post
body: <p>I have a C# object like </p>
  
  <pre><code>public class MyModel
  {
      public string ZipCode { get; set; }
      public DateTime DateOfEvent { get; set; }
  
      public List&lt;Children&gt; Applicants { get; set; }
  
      public string SelectedChoice { get; set; }
  
  }
  
  public class Children
  {
      public string CoverageFor { get; set; }
      public DateTime dateOfBirth { get; set; }
  
  }
  </code></pre>
  
  <p>then My html is like this.</p>
  
  <pre><code>            &lt;div class="control-group span4"&gt;
                  &lt;label class="control-label" for="4"&gt;County&lt;/label&gt;&lt;select name="county" id="4" data-bind="options: county, optionsText:'County', value:selectedCounty, optionsValue: 'FIPSCountyCode' ,  optionsCaption: 'Choose...'"&gt;&lt;/select&gt;
  
              &lt;/div&gt;
          &lt;/div&gt;
  @*--------------------------------------- some more things --------------*@
              &lt;div class="row-fluid dependent " data-bind='foreach: applicants'&gt;
                         &lt;div class="control-group span4"&gt;
                          &lt;label class="control-label" for="5"&gt;
                              Coverage
                              for
                          &lt;/label&gt;
                          &lt;select name="coverageFor" id="5" data-bind="options: coverages, value:coverageFor, optionsText:'name', optionsCaption: 'Choose...'"&gt;&lt;/select&gt;
                      &lt;/div&gt;
                      &lt;div class="control-group span4"&gt;
                          &lt;label class="control-label" for="6"&gt;
                              Date of
                              Birth
                          &lt;/label&gt;
  
                          &lt;input id="6" placeholder="MM/DD/YYYY" class="input-small" data-date-blur="true" data-regex="^((\d{0,2})|(\d{1,2}/?\d{0,2})|(\d{1,2}/?\d{1,2}/?\d{0,4}))$"
                                 type="text" data-bind="value: dateofBirth"/&gt;
  
  
  
                      &lt;/div&gt;
                      @*&lt;a href='#' data-bind='click: $parent.removeApplicant, enable: $root.applicants().length &gt; 1'&gt;Remove&lt;/a&gt;*@
                      &lt;!-- ko if: $index() != 0 --&gt;
                      &lt;a href='#' data-bind="click: $root.removeApplicant"&gt;Remove&lt;/a&gt;
                      &lt;!-- /ko --&gt;
  
              &lt;/div&gt;
  </code></pre>
  
  <p>Then my script is like following</p>
  
  <pre><code>$(function () {
      viewModel.zipCode.subscribe(function (value) {
          $.get("/api/xx/GetCounties?zipCode=" + value, null, viewModel.county, 'json');
      }.bind(this));
  });
  
  
  var ViewModel = function () {
      var self = this;
  
      self.zipCode = ko.observable();
      self.dateOfEvent = ko.observable();
      self.isValidZip = ko.observable(false);
      self.selectedChoice = ko.observable();
  
  
      //Enrollment reasons
      self.enrollmentReasons = ko.observableArray(new Array());
      $.get("/api/myApi/GetEnrollmentReason", null, self.enrollmentReasons, 'json');
  
      //county from Zipcode subscribed
      self.county = ko.observableArray(new Array());
      $.get("/api/myApi/GetCounties?zipCode=" + self.zipCode, null, self.county, 'json');
  
  
      self.applicants = ko.observableArray(new Array());
      self.applicants.push(new Children());
  
      //$.get("/api/myApi/IsInServiceArea?zipCode=" + value, null, ViewModel.isValidZip, 'json');
  
  
      //operations
      self.addApplicant = function () { self.applicants.push(new Children()) };
      self.removeApplicant = function (Children) { self.applicants.remove(getaquoteapplicant) };
  
      self.save = function () {
          var m = ko.mapping.toJS(ko.utils.unwrapObservable(self));
          $.ajax({
              url: '/mypostingpage/start',
              type: 'POST',
              contentType: 'application/json; charset=utf-8',
              data: JSON.stringify(m),
              success: function (result) {
                  alert(result);
  
              }
          });
      }
  
  }
  
  var Children= function () {
      var self = this;
      self.coverageFor = ko.observable();
      self.tobaccoUser = ko.observable();
      self.dateofBirth = ko.observable();
  
      self.coverages = ko.observableArray([
          { name: "Self" },
          { name: "Spouse/Life Partner" },
          { name: "Son" },
          { name: "Daughter" },
          { name: "Sibling" },
          { name: "Other Eligible Person" }
      ]);
  
  
  };   
  
  viewModel = new ViewModel();
  
  ko.applyBindings(viewModel);
  </code></pre>
  
  <p>When I get my post from the call
  on the controller.</p>
  
  <pre><code>[System.Web.Mvc.HttpPost]
  public ActionResult Start(MyModel model)  &lt;------- has all the values but the Children's property values not in.
  {
  
      //Stuff I will return 
  }
  </code></pre>
  
  <p>When I get the <code>MyModel</code> back, it will have all the values but the Children will show how many children I have properly, but the values didn't change. All the properties for children will have the default values. </p>
  
  <p>Does anyone know how I can get the List properties hydrated properly? </p>