Właściwa serializacja JSON w MVC 4

Chciałbym mieć JSON „poprawnie” serializowany (camelCase) i możliwość zmiany formatów daty, jeśli to konieczne.

Dla Web API jest to bardzo proste - w Global.asax wykonuję następujący kod

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

Ten kod, na poziomie potoku, obsługuje serializację w sposób, w jaki chciałbym.

Chciałbym osiągnąć to samo w MVC 4 - mieć zwrócone dowolne JSON z metod akcji kontrolera, aby były odpowiednio serializowane. Przy odrobinie poszukiwań znalazłem następujący kod do uruchomienia aplikacji Global.asax:

HttpConfiguration config = GlobalConfiguration.Configuration;
Int32 index = config.Formatters.IndexOf(config.Formatters.JsonFormatter);
config.Formatters[index] = new JsonMediaTypeFormatter
{
     SerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }
};

Wydaje się, że działa dobrze, ale gdy zwracam JSON z kontrolera, to wszystko jest PascalCased. Prosty przykład mojej metody działania:

private JsonResult GetJsonTest()
{
    var returnData = dataLayer.GetSomeObject();
    return Json(returnData, JsonRequestBehavior.AllowGet);
}

Czy robię to źle? Jakiś pomysł, jak to osiągnąć na poziomie rurociągu?

questionAnswers(3)

yourAnswerToTheQuestion