最近项目中前台页面使用Extjs4.2 ,在后台ASP.NET MVC4返回的DateTime类型的数据错返回的DateTime类型的JsonResult的结果中的值是“\/Date(1378446180000)\/此种格式,致使页面显示时间不正确(以下图建立时间列)json
因而经过自定义JsonResult处理了JSON序列化DateTime类型数据,将处理方法贴于此,供须要的朋友交流学习!!!!app
建立CustomResult类,继承JsonResult, 重写 ExecuteResult方法,代码以下:ide
public class CustomResult : JsonResult { public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } HttpResponseBase response = context.HttpContext.Response; if (!string.IsNullOrEmpty(this.ContentType)) { response.ContentType = this.ContentType; } else { response.ContentType = "application/json"; } if (this.ContentEncoding != null) { response.ContentEncoding = this.ContentEncoding; } if (this.Data != null) { IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; response.Write(JsonConvert.SerializeObject(this.Data, Newtonsoft.Json.Formatting.Indented, timeFormat)); } } }
建立BaseController类,继承Controller类,重写Json方法学习
public class BaseController : Controller { protected override JsonResult Json(object data, string contentType, Encoding contentEncoding) { return new CustomResult { Data = data, ContentType = contentType, ContentEncoding = contentEncoding }; } }
这样就OK了(对了还要解释下,在CustomResult类里用到的序列化是Newtonsoft.Json.Converters),以后针对处理返回带时间格式的 项目中XXController直接继承BaseController 就能够了this
处理完的表格的结果以下spa