Сериализация MVC JsonResult camelCase [дубликат]
На этот вопрос уже есть ответ здесь:
Правильная JSON-сериализация в MVC 4 3 ответаЯ пытаюсь заставить мое действие возвращать JsonResult, где все его свойства находятся в camelCase.
У меня есть просто модель:
public class MyModel
{
public int SomeInteger { get; set; }
public string SomeString { get; set; }
}
И простое действие контроллера:
public JsonResult Index()
{
MyModel model = new MyModel();
model.SomeInteger = 1;
model.SomeString = "SomeString";
return Json(model, JsonRequestBehavior.AllowGet);
}
Вызов этого метода действия теперь возвращает JsonResult, содержащий следующие данные:
{"SomeInteger":1,"SomeString":"SomeString"}
Для моего использования мне нужно, чтобы действие возвращало данные в camelCase, как-то так:
{"someInteger":1,"someString":"SomeString"}
Есть ли какой-нибудь элегантный способ сделать это?
Я искал возможные решения здесь и нашелСериализация MVC3 JSON: Как управлять именами свойств? где они устанавливают определения DataMember для каждого свойства модели, но я не очень хочу это делать.
Также я нашел ссылку, где говорят, что можно решить именно этот вопрос:http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization#json_camelcasing, Это говорит:
Чтобы записать имена свойств JSON в верблюжьем корпусе, не изменяя модель данных, установите CamelCasePropertyNamesContractResolver на сериализаторе:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Одна запись в этом блогеhttp://frankapi.wordpress.com/2012/09/09/going-camelcase-in-asp-net-mvc-web-api/ также упоминает это решение и заявляет, что вы можете просто добавить его вRouteConfig.RegisterRoutes чтобы исправить эту проблему. Я попробовал это, но я не мог заставить это работать.
Ребята, вы понимаете, где я делаю что-то не так?