title: ModelBinding not deserializing json
body: <p>I'm using MVC 5, Web API 2 with Entity Framework 6 in vs 2012.</p>
  
  <p>I'm able to successfully call the right action in my web api controller but the incoming json is never deserialized, or at least not properly. The modelBinding recognizes that the json in the request matches the argument Type for the <code>Post</code> action but every property is null or default value. </p>
  
  <p>Why is the json not being deserialized? I can't see any issues here.</p>
  
  <p><em>This not an active url, just something setup on my local</em></p>
  
  <blockquote>
    <p>POST <a href="http://www.scabs.com/api/scabs" rel="nofollow">http://www.scabs.com/api/scabs</a></p>
  </blockquote>
  
  <p><strong>Body:</strong></p>
  
  <pre><code>{
      "scab" : {
          "url" : "http://money.cnn.com/2013/12/18/news/companies/target-credit-card/index.html?iid=Lead",
          "title" : "Target: 40 million credit cards compromised",
          "description" : "The Secret Service is investigating a reported credit card data breach at discount retailer Target.",
          "image" : {
              "height" : 367,
              "width" : 620,
              "url" : "http://i2.cdn.turner.com/money/dam/assets/131128213407-black-friday-target-pa-620xa.jpg"
          },
          "category" : null
      }
  }
  </code></pre>
  
  <p><strong>Request header:</strong></p>
  
  <pre><code>Accept:*/*
  Accept-Encoding:gzip,deflate,sdch
  Accept-Language:en-US,en;q=0.8
  Cache-Control:no-cache
  Connection:keep-alive
  Content-Length:422
  Content-Type:application/json
  Cookie:.ASPXAUTH=DA97AB5D720AC3100F9698DEAED044403CC5BA266EA8F3361E72C183DA2FAD5EB76D0D9DC2AB6DE30507FF788B7D6607473F87B6EE0D28C043DA50508407ABA1FC7ADA9B8A61F2A7C95024869064EE5D9C6863C670FEF221F9447A3D1F2E7CA67849A33B45B0776FFF0D76CD5C290500
  Host:www.scabs.com
  Origin:chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
  User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
  </code></pre>
  
  <p><strong>Controller:</strong></p>
  
  <pre><code>public class ScabsController : ApiController {
  
      private ScabStore _store;
  
      private ScabStore store {
          get { return _store = _store ?? new ScabStore(); }
      }
  
      // POST api/scabs
      public void Post(Scab scab) {
          store.scabRepository.save(scab);
          store.commit();
      }
  }
  </code></pre>
  
  <p><strong>Scab Type</strong></p>
  
  <pre><code>public class Scab {
      [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
      public int id { get; set; }
  
      [DataType(DataType.Url)]
      public string url { get; set; }
      public string title { get; set; }
      public string description { get; set; }
      public string site { get; set; }
      public virtual Category category { get; set; }
      public virtual Image image { get; set; } // Complex Type
      public virtual User postedBy { get; set; }
      public virtual ICollection&lt;Score&gt; scores { get; set; }
      public virtual ICollection&lt;Comment&gt; comments { get; set; }
  
      public Scab() {
          scores = new List&lt;Score&gt;();
          comments = new List&lt;Comment&gt;();
      }
  }
  </code></pre>
  
  <p>I should also note that the <code>Image</code> property is a <code>ComplexType</code></p>