title: Parameter null in C# code but it is set in AJAX call
body: <p>I'm developing an ASP.NET MVC 5 application with C#, .NET Framework 4.7 and jQuery 1.11.2.</p>
  
  <p>This javascript code:</p>
  
  <pre><code>function RequestCodes(button, poId) {
      var URL = '/ProductionOrder/RequestCodeForIncompleteOrder';
      //button.attr("disabled", "disabled");
  
      $('#ok').hide();
      $('#fail').hide();
      $('#cargando').show();
  
      $.ajax({
          url: URL,
          type: "PUT",
          dataType: "HTML",
          data: { productionOrderId: poId },
          contentType: "json",
          success: function () {
              $('#cargando').hide();
              $('#ok').show();
  
              $("#ok").fadeOut("slow", function () {
                  $('#ok').hide();
              });
          },
          error: function (jqXHR, textStatus, errorThrown) {
              console.log(textStatus, errorThrown);
              $('#cargando').hide();
              $('#fail').show();
  
              $("#fail").fadeOut("slow", function () {
                  $('#fail').hide();
                  //button.removeAttr("disabled");
              });
          }
      });
  }
  </code></pre>
  
  <p>Throws this error:</p>
  
  <blockquote>
    <p>he parameters dictionary contains a null entry for parameter
    'productionOrderId' of non-nullable type 'System.Int32' for method
    'System.Web.Mvc.ActionResult RequestCodeForIncompleteOrder(Int32)' in
    'TRZF.Web.API.Controllers.ProductionOrderController'. An optional
    parameter must be a reference type, a nullable type, or be declared as
    an optional parameter.Parameter name: parameters.</p>
  </blockquote>
  
  <p>When I call the method:
  <code>public ActionResult RequestCodeForIncompleteOrder(int productionOrderId)</code></p>
  
  <p>The problem is with the parameter name in the javascript code, but I don't know how why because it has the same name like in the C# code.</p>
  
  <p>How can I fix this error?</p>