Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.net MVC-带有DateTime的模型,正在尝试为jqGrid的Json()序列化_Asp.net Mvc_Json_Datetime_Serialization_Jqgrid - Fatal编程技术网

Asp.net mvc ASP.net MVC-带有DateTime的模型,正在尝试为jqGrid的Json()序列化

Asp.net mvc ASP.net MVC-带有DateTime的模型,正在尝试为jqGrid的Json()序列化,asp.net-mvc,json,datetime,serialization,jqgrid,Asp.net Mvc,Json,Datetime,Serialization,Jqgrid,我有一个模型 [DataContract] public class DeviceModel { [DataMember(Order=1)] public string Alias { get; set; } [DataMember(Order = 2)] public string Location { get; set; } [DataMember(Order = 3)]

我有一个模型

    [DataContract]
    public class DeviceModel
    {
        [DataMember(Order=1)]
        public string Alias { get; set; }

        [DataMember(Order = 2)]
        public string Location { get; set; }

        [DataMember(Order = 3)]
        public string State { get; set; }

        [DataMember(Order = 4)]
        public DateTime? DateCreated { get; set; }

        [DataMember(Order = 5)]
        public string RatePlan { get; set; }

        public DeviceModel()
        {
            Alias = null;
            Location = null;
            State = null;
            DateCreated = null;
            RatePlan = null;
        }
    }

如您所见,此模型包含一个DateTime对象。我使用这个模型作为我们正在使用的jqGrid插件的数据。唯一的问题是,DateCreated字段在网格加载时显示“/Date(1285128000000)/”而不是可读日期。我已经阅读了这里的其他一些帖子,但我觉得它们不太适合我所寻找的内容。我正在寻找一种方法,将这个DateTime字段格式化为人类可读的字符串?建议?

JSON只知道两种基本数据类型:字符串和数字,以及no
Date
type。数据协定序列化程序支持。例如
DateTime
DateTimeOffset
TimeSpan
Guid
Uri
XmlQualifiedName
。如果您将数据发送到客户机,该客户机还使用数据协定序列化程序来反序列化数据,那么您可以使用数据类型中的任何数据,而不会出现任何问题

问题的最简单解决方案是在发送数据之前在服务器上准备数据。如果您将只序列化只有字符串和数字作为属性或数组的对象/
IList
,那么您就不会有问题。例如,默认情况下,jqGrid等待ISO日期格式的数据:
Y-m-d
,数字分别为
Y
m
d
。如果您将服务器上的数据转换为Y-m-d格式,并在相应的
colModel
定义中使用
formatter:'date'
,您的问题将得到解决


您还可以使用和在客户端解决问题。

尝试如中所述解决问题的方法有多种:服务器端和客户端。你能用jqGrid代码示例的1)定义来回答你的问题吗?2)代码示例展示了在将数据发送回客户端之前,如何在服务器端序列化数据。3) 仅包含日期或日期与时间信息的
DateTime
值?谢谢!我打算使用自定义格式化程序,但我认为在服务器端处理数据是解决这个问题的方法。再次感谢@DavidAndroidDev:刚才我发布了一个建议(请参阅),建议对jqGrid代码进行一些小的修改,以支持Microsoft针对
DateTime
类型的序列化格式:“/Date(1285128000000)/”。也许很快jqGrid就会移植它。