title: Webapi Post has null values
body: <p>I'm calling a webApi from another project (C# class) and one of the properties is always null. I verified while debugging that the object is properly populated. The object being pass is stored in a shared library that's referenced in both projects. So there shouldn't be a mismatch in types.</p>
  
  <p>I verify before the post is sent that order.Products.Answers is set. then I have a break point in the WebApi Method and its null. I'm not sure why.</p>
  
  <p>Here's the code used to generate the post:</p>
  
  <pre><code>    [HttpPost]
      public ActionResult Add(ApiOrder order)
      {
          try
          {
              HttpResponseMessage resp = null;
              ApiOrder processedOrder = null;
  
              using (var client = new HttpClient())
              {
                  var url = GetUrlToWebApis();
                  client.BaseAddress = new Uri(url);
                  client.DefaultRequestHeaders.Accept.Clear();
                  client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  
                  Task&lt;HttpResponseMessage&gt; task = client.PostAsJsonAsync("apisecure/order", order);
                  //resolve the reque
                  resp = task.Result;
                  var a = resp.Content.ReadAsAsync&lt;ApiOrder&gt;();
                  processedOrder = a.Result;
                  TempData["ConfirmMessage"] = "Order Was added";
              }
  
              return View("Add", processedOrder);
          }
          catch (Exception e)
          {
              //ViewBag.messgae = e.InnerException;
              TempData["ErrorMessage"] = e.InnerException;
              return View("Add", order);
          }
      }
  </code></pre>
  
  <p>And here is the WebApi Method that handles the Post</p>
  
  <pre><code>public IHttpActionResult Post(ApiOrder order)
  </code></pre>
  
  <p>Here's the class structure of ApiOrder</p>
  
  <pre><code> [DataContract]
      [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
      public class ApiOrder
      {
          [DataMember]
          [Required]
          public virtual int Id { get; set; }
  
          [DataMember]
          // [Required]
          public virtual List&lt;ApiProduct&gt; Products { get; set; }
  }
  </code></pre>
  
  <p>Now the ApiProduct Class</p>
  
  <pre><code>    [DataContract]
      [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
      public class ApiProduct
      {
          [DataMember]
          [Required]
          public virtual int ActionId { get; set; }
          [DataMember]
          public virtual List&lt;ApiAnswer&gt; Answers { get; set; } // &lt;-- Always null
  }
  </code></pre>
  
  <p>And lastly the ApiAnswer</p>
  
  <pre><code>[DataContract]
  [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
  public class ApiAnswer
  {
      [DataMember]
      [Required]
      public virtual int QuestionId { get; set; }
  
      [DataMember]
      public virtual string QuestionText { get; set; }
  
      [DataMember]        
      public virtual string Answer { get; set; }
  }
  </code></pre>