专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

通过自定义MVC的Controller的Json转换器解决日期序列化格式问题

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:16:37       共计:3598 浏览
MVC框架下使用EasyUI的datagrid加载数据时,服务端返回的Json日期格式 为 /Date(1433088000000+0800)/ ,需要客户端进一步转换,而且也不符合EasyUI常用的日期格式要求,为此,对MVC框架下的Controller做了一些研究,发现通过对 Controller的Json方法进行扩展就可以解决该问题,而且可以通过进一步自定义序列化类,满足任何类型的数据的序列化格式要求。

要实现该目标,需要完成三个步骤的工作:

1、创建Controller的派生类,引入自定义JsonResult

2、创建JsonResult的派生类,实现Json日期格式的自定义实现

3、所有需要实现自定义日期序列化格式的控制器,需继承于上述Controller的派生类

具体代码实现示例如下:

    /// <summary>  
    /// 张军
    /// 2015-08-05
    /// 通过重载ExecuteResult方法,实现自定义序列化日期的实现  
    /// </summary>  
    public class BGJsonResult : JsonResult
    {
        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            HttpResponseBase response = context.HttpContext.Response;
            if (this.Data != null)
            {
                JsonSerializerSettings setting = new JsonSerializerSettings();
                // 设置日期序列化的格式  
                setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
                response.Write(JsonConvert.SerializeObject(Data, setting));
                
            }
        }
    }
    /// <summary>   
    /// 张军
    /// 2015-08-05
    /// 通过创建Controller的派生类来引入自定义的Json实现      
    /// </summary>  
    public class BGController : Controller
    {
        protected override JsonResult Json(object data, string contentType, Encoding contentEncoding)
        {
            return new BGJsonResult { Data = data, ContentType = contentType, ContentEncoding = contentEncoding };
        }
        public new JsonResult Json(object data, JsonRequestBehavior jsonRequest)
        {
            return new BGJsonResult { Data = data, JsonRequestBehavior = jsonRequest };
        }
        public new JsonResult Json(object data)
        {
            return new BGJsonResult { Data = data, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
    } 

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:sql server 两个服务器间操作数据 | ·下一条:JS版组织结构图

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有