我希望JSON被"正确"序列化(camelCase),并且能够在必要时更改日期格式.
对于Web API,这非常简单-在Global.asax中,我执行以下代码
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
这段代码在管道级别以我喜欢的方式处理序列化.
我想在MVC4中完成同样的事情——将控制器操作方法返回的任何JSON正确序列化.通过一点搜索,我找到了下面的代码,可以在全局.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时,它完全是PascalCase的.我的操作方法的一个简单示例:
private JsonResult GetJsonTest()
{
var returnData = dataLayer.GetSomeObject();
return Json(returnData, JsonRequestBehavior.AllowGet);
}
我说错了吗?你知道如何在管道层面上做到这一点吗?