Możesz mieć swoją metodę post, która przyjmuje HttpRequestMessage, aby przekazać logikę powiązania modelu i możesz bezpośrednio odczytać zawartość żądania:
public HttpResponseMessage Post(HttpRequestMessage req)
{
var data = req.Content.ReadAsStringAsync().Result; // using .Result here for simplicity...
...
}
Przy okazji, powodem, dla którego akcja wykonywana w JObject nie działa, jest 'ObjectId("...")', który jest używany jako wartość "_id" w Twoich danych...