从.Net Web方法修复JSON日期序列化

Jus*_*tin 7 c# ajax serialization entity-framework webforms

我目前正在开发一个项目,我通过ajax将.Net类型通过ajax发送到客户端应用程序.我对序列化并设置为客户端的对象没有任何问题.

当我采用完全相同的对象并通过web方法将其发回服务器时遇到以下错误,我遇到了问题:/Date(1373950800000)/ is not a valid value for DateTime. 这很烦人,因为这就是微软给我的方式,但除此之外.

有人有快速解决这个问题吗?我想要一个无缝的方法,这可以完成,而无需在从ajax调用返回之前更改对象.

Kar*_*son 8

您的问题归结为您正在使用的服务器端JavaScript序列化程序; 无论是JsonDataContractSerializer(ASP.NET MVC的默认的序列)或NewtonSoft Json Serializer(对于的ASP.NET Web API默认的序列).

有关此日期修改问题的可视示例以及可能的解决方案,请查看ASP.NET MVC和Web API中的JSON日期不同.


小智 7

处理DateFormat,而序列化代码将解决您的问题

   JsonConvert.SerializeObject(yourobject, Formatting.Indented,
                    new JsonSerializerSettings
                    {
                         DateFormatHandling = DateFormatHandling.IsoDateFormat
                    });
Run Code Online (Sandbox Code Playgroud)

它将导致日期为2009-02-15T00:00:00Z格式