title: Passing List of KeyValuePair or IDictionary to Web Api Controller from Javascript
body: <p>I have a web api controller to which I would like to post two parameters. One is a flat int ID, and the other is an IDictionary or similar equivalent.</p>
  
  <pre><code>[HttpPost]
  public void DoStuff(int id, [FromBody]IDictionary&lt;int, int&gt; things)
  {
  }
  
  var things = new Array();
  things.push({ 1: 10 }); // tried things.push({ Key: 1, Value: 10 })
  things.push({ 2: 11 });
  $.ajax({
      url: '/api/DoStuff?id=' + id,
      data: '=' + JSON.stringify(things), // tried what seems like 100 different things here
      type: 'POST',
      dataType: 'json'
  });
  </code></pre>
  
  <p>No matter what I try in the data param (<code>data: things</code>, <code>data: '=' + things</code>), the Dictionary does not come through to the api controller.  It is either null or has one bogus entry ({0, 0}).</p>
  
  <p>I have also tried to send the Dictionary in the Uri - no go.</p>
  
  <p>How can I send the dictionary or key value pair to the api controller?</p>