title: how to post arbitrary json object to webapi
body: <p>How do I / is it possible to pass in a json object to a webapi controller (POST) and <em>not</em> have a class to map it to, but rather handle it as arbitrary content?</p>
  
  <p>So if I pass in from my client like so:</p>
  
  <pre><code>        createRecord: function (model, data, callback, callbackParams) {
          var request = jQuery.ajax({
              type: "POST", // default = GET,
              url: '/api/' + model + '/',
              data: data,
              contentType: 'application/json',
              success: function (msg) {
                  $('#results').text(msg);
                  if (callback) // only fire a callback if it has been specified
                      callback(msg, callbackParams);
              },
              error: function (jqXHR, textStatus) {
                  alert('Request failed: ' + textStatus);
              }
          });
      }
  </code></pre>
  
  <p>and data is something like:</p>
  
  <pre><code>{ "_id" : ObjectId("5069f825cd4c1d590cddf206"), "firstName" : "John", "lastName" : "Smith", "city" : "Vancouver", "country" : "Canada" }
  </code></pre>
  
  <p>My controller will be able to parse it? And next time the data may not match that signature (eg:</p>
  
  <pre><code>{ "_id" : ObjectId("5069f825cd4c1d56677xz6"), "company" : "Acme" }
  </code></pre>
  
  <p>In my controller, I have tried:</p>
  
  <pre><code>public HttpResponseMessage Post([FromBody]JObject value)
  </code></pre>
  
  <p>and:</p>
  
  <pre><code>public HttpResponseMessage Post([FromBody]string value)
  </code></pre>
  
  <p>and (because this is actually to work with a mongo db):</p>
  
  <pre><code>public HttpResponseMessage Post([FromBody]BsonDocument value)
  </code></pre>
  
  <p>but it looks like the object mapper wants to map to something other than string...</p>