title: ASP.NET MVC does not deserialize JSON correctly when Conten-Type is missing
body: <p>Using ASP.NET MVC 4, I have a controller that accepts a JSON structure:</p>
  
  <pre><code>public class SomeDto {
      ...
      public Boolean IsUnicornAlive { get; set; }
      ...
  }
  
  [HttpPost]      
  public ActionResult DoSomething(SomeDto dto) {
  ...
  }
  </code></pre>
  
  <p>Now if this POST request comes in <strong>without</strong> Content-Type specified:</p>
  
  <pre><code>{
  ...
  "IsUnicornAlive":true
  ...
  }
  </code></pre>
  
  <p>the action still gets called but IsUnicornAlive property would be false. Essentially this is a problem on the side that created the request, but still I would expect ASP to not treat it silently and not call my action with defaulted values. The most appropriate handling in this case would be a 4xx error, 415 ideally. What would be the easiest way to implement it? Or is there a way to know that default values were used inside the controller action?</p>
  
  <p>Note: this question is not about ASP.NET WebApi which does not have this issue. This is specifically about MVC.</p>