title: JSON.NET MVC 4 WebApi
body: <p>I am creating Controller to return an object in JSON format.
  I want to use Newtonsoft.Json library.
  I created two methods:</p>
  
  <pre><code>[HttpGet]
  [ActionName("RetrieveTestClassJson")]
  public ActionResult RetrieveTestClassJson(int id)
  {
      TestThing testThing = new TestThing() { Name = "LPL.22.334", Type = TypeTest.Component };
      JsonNetResult jsonNetResult = new JsonNetResult();
      jsonNetResult.Formatting = Formatting.Indented;
      jsonNetResult.ContentType = "application/json";
      jsonNetResult.ContentEncoding = Encoding.Unicode;
      jsonNetResult.Data = testThing;
      return jsonNetResult;
  }
  
  [HttpGet]
  [ActionName("RetrieveTestClassCase2")]
  public TestThing RetrieveTestClassCase2(int id)
  {
      TestThing testThing = new TestThing() { Name = "LPL.22.334", Type = TypeTest.Component };
      return testThing;
  }
  </code></pre>
  
  <p>when I call RetrieveTestClassJson from ajax or browser url I get:</p>
  
  <pre><code>{"ContentEncoding":{"isThrowException":false,"bigEndian":false,"byteOrderMark":true,"m_codePage":1200,"dataItem":null,"encoderFallback":{"strDefault":"�","bIsMicrosoftBestFitFallback":false},"decoderFallback":{"strDefault":"�","bIsMicrosoftBestFitFallback":false},"m_isReadOnly":true},"ContentType":"application/json","Data":{"Name":"LPL.22.334"},"SerializerSettings":{"ReferenceLoopHandling":0,"MissingMemberHandling":0,"ObjectCreationHandling":0,"NullValueHandling":0,"DefaultValueHandling":0,"Converters":[{"CamelCaseText":true,"CanRead":true,"CanWrite":true}],"PreserveReferencesHandling":0,"TypeNameHandling":0,"TypeNameAssemblyFormat":0,"ConstructorHandling":0,"ContractResolver":null,"ReferenceResolver":null,"TraceWriter":null,"Binder":null,"Error":null,"Context":{"m_additionalContext":null,"m_state":0},"DateFormatString":"yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK","MaxDepth":null,"Formatting":0,"DateFormatHandling":0,"DateTimeZoneHandling":3,"DateParseHandling":1,"FloatFormatHandling":0,"FloatParseHandling":0,"StringEscapeHandling":0,"Culture":"(Default)","CheckAdditionalContent":false},"Formatting":1}
  </code></pre>
  
  <p>When I call RetrieveTestClassCase2 I get normal JSON format.
  I removed xml handler for testing purposes for now:</p>
  
  <pre><code>var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t =&gt; t.MediaType == "application/xml");
  config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
  </code></pre>
  
  <p>I am puzzled of what is going on.</p>