0

我有一个显示电子邮件模板的 JSON 网格,但问题是显示的最后更改日期早于当前日期,但在 MVC 编辑视图中编辑该记录时,相同的记录最后更改日期正确显示。

返回的 Json 格式日期为:Date(1362686659073)

但是在同一记录的编辑页面上日期是:3/7/2013 12:04:19 PM 即日期(1362638059000)

同一日期相差约 13.5 小时。

这是我将数据返回到 JSON 的代码

        TemplateGridExt ext = new TemplateGridExt();
        ext.Count = client.GetPagedGridCountEmailTmpl(filter);
        ext.Data = result.EmailTmpl_Vs.ToList();
        return this.Json(ext, JsonRequestBehavior.AllowGet);
4

1 回答 1

1

尝试以其他格式(如字符串)传递数据,然后它应该可以正常工作。

试试这个代码 -

首先创建一个这样的类 -

public class TimeFormatter : DateTimeConverterBase
{
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        return DateTime.Parse(reader.Value.ToString());
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {

        writer.WriteValue(((DateTime)value).ToString("yyyy/MM/dd"));//format for date
    }
}

使用此代码将 Json 数据返回到您的视图 -

JsonSerializerSettings jSettings = new JsonSerializerSettings()
            {
                Formatting = Formatting.Indented,
                DateTimeZoneHandling = DateTimeZoneHandling.Utc
            };

            jSettings.Converters.Add(new TimeFormatter());
            JsonSerializer.Create(jSettings);


            return JsonConvert.SerializeObject(data, jSettings);//'data' is list of objects to return to view.

不要忘记包含命名空间 -

using System.Runtime.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
于 2013-03-19T07:14:49.137 回答