title: List passed to controller via AJAX is null
body: <p>I'm trying to pass a <code>List</code> of <code>objects</code> back to my <code>controller</code>, but the <code>List</code> is <code>null</code> if/when it gets to the <code>controller</code>.  Here is what I'm doing:</p>
  
  <p>Controller Action Signature</p>
  
  <pre><code>[HttpGet]
  public ActionResult SaveSpec(IEnumerable&lt;DpvItemLiteVm&gt; alarms){}
  </code></pre>
  
  <p>View Model</p>
  
  <pre><code>public class DpvItemLiteVm
      {
          public string Location { get; set; }
          public string Program { get; set; }
          public string DeviceType { get; set; }
          public string PartName { get; set; }
          public string RoutineId { get; set; }
          public string FtrName { get; set; }
          public string FtrAttCode { get; set; }
          public decimal LowVal { get; set; }
          public decimal HiVal { get; set; }
          public decimal? TargetVal { get; set; }
      }
  </code></pre>
  
  <p>And the View</p>
  
  <pre><code>var alarms = [];
  
  $('#featureSpecGrid tr').each(function () {
       var $tds = $(this).find('td');
       var target = $tds.eq(4).text() === '' ? null : parseFloat($tds.eq(4).text());
       var temp = {
            Location: location,
            Program: program,
            DeviceType: device,
            PartName: part,
            RoutineId: routine,
            FtrName: $tds.eq(0).text(),
            FtrAttCode: $tds.eq(1).text(),
            LowVal: parseFloat($tds.eq(2).text()),
            HiVal: parseFloat($tds.eq(3).text()),
            TargetVal: target
       };
       alarms.push(temp);
  });
  
  //alarms = JSON.stringify({ 'alarms': alarms });
  
  //console.log(alarms);
  
  $.ajax({
       type: 'GET',
       cache: false,
       contentType: 'application/json',
       url: '/Dpv/SaveSpec',
       data: alarms
  }).done(function (partialViewResult) {
       $('#statusMsg').html(partialViewResult);
  }).always(function(result) {
       console.log(result);
  });
  </code></pre>
  
  <p>I've tried <a href="https://stackoverflow.com/questions/13242414/passing-a-list-of-objects-into-an-mvc-controller-method-using-jquery-ajax">this answer</a>, <a href="https://stackoverflow.com/questions/25119281/passing-list-and-string-data-from-ajax-to-controller-in-mvc-4-getting-null-for">this answer</a>, and <a href="https://stackoverflow.com/questions/16547491/ajax-post-to-asp-net-mvc-controller-object-properties-are-null">this answer</a> (to name a few); if I use <code>JSON.stringify</code> (as some of the answers suggest) I get a <code>404</code> response.  I've also tried using a <code>List</code> instead of <code>IEnumerable</code>, making my <code>View Model</code> smaller (location, program, device, part, and routine are the same for each item being passed back) and setting up the AJAX accordingly (returns a <code>404</code> error).  If I do manage to make it back to the <code>controller</code>, the <code>List</code> is <code>null</code>.</p>
  
  <p>Here's a sample of the payload if I <code>stringify</code> it: 
  <code>{"alarms":"Location":"ABC123","Program":"1A2B","DeviceType":"Device","PartName":"Part1","RoutineId":"ABC456","FtrName":"Feature1","FtrAttCode":"CodeA","LowVal":-1.01,"HiVal":1.01,"TargetVal":null}</code></p>
  
  <p>And if I don't <code>stringify</code>: </p>
  
  <p><code>[object Array]
       0
           Location:"ABC123"
           Program:"1A2B"
           DeviceType:"Device"
           PartName:"Part1"
           RoutineId:"ABC456"
           FtrName:"Feature1"
           FtrAttCode:"CodeA"
           LowVal:-1.01
           HiVal:1.01
           TargetVal":null
       1</code></p>
  
  <p>Can anyone help?</p>