博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决MVC返回Json中日期格式问题
阅读量:5907 次
发布时间:2019-06-19

本文共 2150 字,大约阅读时间需要 7 分钟。

问题:MVC中使用控制器返回JsonResult,如果带有日期字段的对象,浏览器接收到的json中会变成形如/Date('123123123')/格式。如何在easyui等中直接使用是个麻烦事。

解决方法:从源头开始。既然Controller控制器的Json()方法会自动转化,那我们就给它扩展一下,把格式化日期的功能替换成我们自己写的格式:

首先,我们继承JsonResult写一个类,重载他的ExcuteResult:

///     /// 提供自定义日期格式 Json    ///     public class CustomJsonResult : JsonResult    {        public override void ExecuteResult(ControllerContext context)        {            if (context == null)            {                throw new ArgumentNullException("context");            }                        HttpResponseBase response = context.HttpContext.Response;            if (Data != null)            {                var timeConverter = new IsoDateTimeConverter {DateTimeFormat = "yyyy-MM-dd HH:mm:ss"};//这里使用自定义日期格式,默认是ISO8601格式                        response.Write(JsonConvert.SerializeObject(Data,Formatting.Indented,timeConverter));            }        }    }

然后,继承Controller,实现一个BaseController

///     /// 本项目所有控制器的基类,提供Json方法,用来自定义格式化日期    /// public class BaseController : Controller    {        protected override JsonResult Json(object data, string contentType, Encoding contentEncoding)        {            return new CustomJsonResult {Data = data, ContentType = contentType, ContentEncoding = contentEncoding};        }        public new JsonResult Json(object data, JsonRequestBehavior jsonRequest)        {            return new CustomJsonResult {Data = data, JsonRequestBehavior = jsonRequest};        }        public new JsonResult Json(object data)        {            return new CustomJsonResult {Data = data, JsonRequestBehavior = JsonRequestBehavior.AllowGet};        }    }

使用时,首先保证你的控制器是继承自BaseController,而不是Controller,举个栗子:

public JsonResult UserSrc()        {            var q = from u in db.T_User.Where(p=>!p.DelFlag)                    select                        new                        {                            UserID = u.UserID,                            UserName = u.UserName,                            RealName = u.RealName,                            Date=u.Date                         };            return Json(q);        }

 

 

 

转载于:https://www.cnblogs.com/limlee/archive/2013/05/23/3094258.html

你可能感兴趣的文章
虚拟机VirtualBox 5.1.0|VBOX
查看>>
OOM killer(Out Of Memory killer)
查看>>
目前机器学习和深度学习能做些什么?
查看>>
C# 应用微软的Visual Studio International Pack 类库提取汉字拼音首字母[转]
查看>>
基于html5 canvas和js实现的水果忍者网页版
查看>>
IT忍者神龟之使用 PowerDesigner
查看>>
深入理解javascript描述元素内容的5个属性
查看>>
Android 知识梳理
查看>>
【反射】使用反射来获取注解原数据信息-类信息-方法信息等
查看>>
【原创】宿主机远程登录虚拟机(windows server 2003系统)
查看>>
前端开发,关于图片的那些事
查看>>
如何合理的规划jvm性能调优
查看>>
从地址字符串获取省市区信息
查看>>
莫比乌斯反演初步与实际应用
查看>>
技术分享:阿里巴巴Dubbo实现的源码分析
查看>>
Redis3.2源码分析-跳跃表zskiplist
查看>>
开发人员可以提高效率的chrome插件推荐
查看>>
Zend引擎
查看>>
Express实用技巧和设计模式
查看>>
python协程的前世今生
查看>>