zoukankan      html  css  js  c++  java
  • 自定义JsonResult处理JSON序列化DateTime类型数据(Ext4.2+ASP.NET MVC 4)

    最近项目中前台页面使用Extjs4.2 ,在后台ASP.NET MVC4返回的DateTime类型的数据错返回的DateTime类型的JsonResult的结果中的值是“/Date(1378446180000)/此种格式,导致页面显示时间不正确(如下图创建时间列)

    于是通过自定义JsonResult处理了JSON序列化DateTime类型数据,将处理方法贴于此,供需要的朋友交流学习!!!!

    创建CustomResult类,继承JsonResult, 重写 ExecuteResult方法,代码如下:

     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 就可以了

    处理完的表格的结果如下

  • 相关阅读:
    Solr服务在Linux上的搭建详细教程
    Linux服务器上安装JDK小白教程
    request和response中文乱码问题后台处理办法
    Redis的五种数据类型及方法
    Java类装载器ClassLoader
    Git快速入门和常用命令
    redis在Linux上的部署和jedis简单使用
    Linux常用基础命令
    JDK1.7中HashMap底层实现原理
    微信电脑版无法显示图片无法下载文件
  • 原文地址:https://www.cnblogs.com/Y-X-DONG/p/3336597.html
Copyright © 2011-2022 走看看