Я бы хотел, чтобы JSON был "правильно" сериализован (camelCase) и возможность изменять форматы даты, если это необходимо.
Для Web API это очень просто - в Global.asax я выполняю следующий код
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Этот код на уровне конвейера обрабатывает сериализацию так, как мне хотелось бы.
Я хотел бы сделать то же самое в MVC 4 - должен ли какой-нибудь JSON возвратиться из методов действий контроллера для правильной сериализации. С небольшим поиском я нашел следующий код для запуска запуска приложения 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() }
};
Кажется, что это нормально, но когда я возвращаю JSON из контроллера, все PascalCased. Простой пример моего метода действий:
private JsonResult GetJsonTest()
{
var returnData = dataLayer.GetSomeObject();
return Json(returnData, JsonRequestBehavior.AllowGet);
}
Я собираюсь сделать это неправильно? Любая идея, как это сделать на уровне трубопровода?