title: ASP.NET mvc 4 controller parameter always null when sending json to controller, why?
body: <p>There are some similar posts already here, and tried every solution suggested, and still does not work... I can not get value inside controller, it is always null. Below is the code. Am I missing something?</p>
  
  <p><strong>Client side javascript</strong></p>
  
  <pre><code>   function getChart() {
         JSONString3 = { HAxis : [{ Name : "monday" }] };
         jQuery.ajaxSettings.traditional = true;
          $.ajax({
              url: "@Url.Action("getChart","SBM")",
              type: 'POST',
              contentType: 'json',
              dataType: 'html',
              data: JSONString3,
              success: function (data) {
                  var imagestring = btoa(data);
                  $('#ChartImage').attr('src', "data:image/png;base64," + imagestring + "?" + new       Date().getTime());
              }
          })
          jQuery.ajaxSettings.traditional = false;
      }
  </code></pre>
  
  <p><strong>MVC Controller</strong></p>
  
  <pre><code>    [Authorize]
      [HttpPost]
      public ActionResult getChart(YAxis HAxis)
      {
          YAxis XAxisvalue = HAxis;
          Charts chart = new Charts();
          MemoryStream ms = new MemoryStream();
          chart.Chart.SaveImage(ms);
          string image = Convert.ToBase64String(ms.GetBuffer());
          return File(ms.GetBuffer(), "image/png", "Chart.png");
      }
  </code></pre>
  
  <p><strong>Model</strong></p>
  
  <pre><code>public class YAxis
  {
      public string Name { get; set; }
  }
  </code></pre>