2013-03-08 101 views
0

我有一個顯示電子郵件模板的JSON網格,但問題是顯示的最後更改日期早於當前日期,但相同記錄最後更改日期在MVC編輯視圖中編輯該記錄時正確顯示。正確的時間不顯示在json網格中,但在MVC編輯視圖中的時間是正確的

JSON格式返回的日期爲:日期(1362686659073)

但對於相同的記錄日期編輯頁面上是:2013年3月7日下午12點04分19秒即日期(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); 
+0

歡迎來到緩存。最簡單的方法是將Action更改爲HttpPost而不是HttpGet。 – leppie 2013-03-08 05:21:55

回答

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; 
+0

感謝@GurjeetSinghDB這工作。 – 2013-03-19 07:18:21