title: Web Api parameter object is null even on Ajax Call
body: <p>Here's my Model:</p>
  
  <pre><code>namespace API.Model
  {
  [Serializable]
  public class OrderModel
  {
      public string hashKey { get; set; }
      public int orderId { get; set; }
      public string skuId { get; set; }
      public string itemId { get; set; }
      public string prevItemId { get; set; }
      public int quantity { get; set; }
  }
  }
  </code></pre>
  
  <p>Here's my Controller, </p>
  
  <pre><code>[RoutePrefix("api/orderapi")]
  public class OrderAPIController : ApiController
  {
      [HttpPost]
      [Route("UpdateMultipackage")]
      public IHttpActionResult UpdatePOMultipackageSKU([FromBody] OrderModel multipackageSKU)
      {
          if (!ModelState.IsValid)
          {
              var errors = ModelState
                  .SelectMany(x =&gt; x.Value.Errors, (y, z) =&gt; z.Exception.Message);
  
              return BadRequest(errors.ToString());
          }
  
          MPPEWebServices.API.ResInfo results = new MPPEWebServices.API.ResInfo();
          Guid appGuid = new Guid(multipackageSKU.hashKey);
          MPPEOrderController orderController = new MPPEOrderController();
  
          Guid skuIdGuid = new Guid(multipackageSKU.skuId);
          Guid itemIdGuid = new Guid(multipackageSKU.itemId);
          Guid prevItemIdGuid = new Guid(multipackageSKU.prevItemId);
  
          if (orderController.UpdatePOMultipackageSKU(multipackageSKU.orderId, skuIdGuid, itemIdGuid, prevItemIdGuid, multipackageSKU.quantity) &gt; 0)
          {
              results.Success = true;
              results.Message = "Success";
          }
          else
          {
              results.Success = false;
              results.Message = "Failed";
          }
  
          return Ok(results.ToString());
      }
  }
  </code></pre>
  
  <p>and here's how I call my controller in ajax.</p>
  
  <pre><code>var obj =
      {
          hashKey: "5B1D386B-D725-4AD3-AF9D-2CC3FCBE7AAC",
          orderId: 1166,
          skuId: "5B1D386B-D725-4AD3-AF9D-2CC3FCBE7AAC",
          itemId: "5B1D386B-D725-4AD3-AF9D-2CC3FCBE7AAC",
          prevItemId: "5B1D386B-D725-4AD3-AF9D-2CC3FCBE7AAC",
          quantity: 1
      };
  
  $.ajax({
              type: 'POST',
              url: '/api/orderapi/updatemultipackage',
              data: JSON.stringify(obj),
              dataType: 'json',
              contentType: 'application/json; charset=utf-8',
              success: function (result) {
                  alert('Success! ' + result.responseText + " " + this.url + " " + this.data);
              },
              error: function (result) {
                  alert('Error! ' + result.responseText + " " + this.url + " " + this.data);
              },
              async: true
          });
  </code></pre>
  
  <p>With this codes I am passing a json to my object in controller. When I put a breakpoint in my Controller or if I put my model in watch. All of the variables inside my model is still null. But in my JavaScript all of my variable have values.</p>