MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
来源:互联网 发布:聊天社交软件排行 编辑:程序博客网 时间:2024/04/29 20:01
实际上是Json格式化问题,我们应该在返回json的时候进行格式化,我们需要重写系统的JsonResult类
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web.Mvc;using System.Text.RegularExpressions;using System.Web;using System.Web.Script.Serialization;namespace App.Common{ public class ToJsonResult : JsonResult { const string error = "该请求已被封锁,因为敏感信息透露给第三方网站,这是一个GET请求时使用的。为了可以GET请求,请设置JsonRequestBehavior AllowGet。"; /// <summary> /// 格式化字符串 /// </summary> public string FormateStr { get; set; } public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } if (JsonRequestBehavior == JsonRequestBehavior.DenyGet && String.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase)) { throw new InvalidOperationException(error); } HttpResponseBase response = context.HttpContext.Response; if (!String.IsNullOrEmpty(ContentType)) { response.ContentType = ContentType; } else { response.ContentType = "application/json"; } if (ContentEncoding != null) { response.ContentEncoding = ContentEncoding; } if (Data != null) { JavaScriptSerializer serializer = new JavaScriptSerializer(); string jsonstring = serializer.Serialize(Data); //string p = @"\\/Date\((\d+)\+\d+\)\\/"; string p = @"\\/Date\(\d+\)\\/"; MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString); Regex reg = new Regex(p); jsonstring = reg.Replace(jsonstring, matchEvaluator); response.Write(jsonstring); } } /// <summary> /// 将Json序列化的时间由/Date(1294499956278+0800)转为字符串 /// </summary> private string ConvertJsonDateToDateString(Match m) { string result = string.Empty; string p = @"\d"; var cArray = m.Value.ToCharArray(); StringBuilder sb = new StringBuilder(); Regex reg = new Regex(p); for (int i = 0; i < cArray.Length; i++) { if (reg.IsMatch(cArray[i].ToString())) { sb.Append(cArray[i]); } } // reg.Replace(m.Value; DateTime dt = new DateTime(1970, 1, 1); dt = dt.AddMilliseconds(long.Parse(sb.ToString())); dt = dt.ToLocalTime(); result = dt.ToString("yyyy-MM-dd HH:mm:ss"); return result; } }}
创建Controller的基类,BaseController让Controller去继承Controller
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;using System.Web.Mvc;using App.Common;using App.Models.Sys;namespace App.Admin{ public class BaseController : Controller { /// <summary> /// 获取当前用户Id /// </summary> /// <returns></returns> public string GetUserId() { if (Session["Account"] != null) { AccountModel info = (AccountModel)Session["Account"]; return info.Id; } else { return ""; } } /// <summary> /// 获取当前用户Name /// </summary> /// <returns></returns> public string GetUserTrueName() { if (Session["Account"] != null) { AccountModel info = (AccountModel)Session["Account"]; return info.TrueName; } else { return ""; } } /// <summary> /// 获取当前用户信息 /// </summary> /// <returns>用户信息</returns> public AccountModel GetAccount() { if (Session["Account"] != null) { return (AccountModel)Session["Account"]; } return null; } protected override JsonResult Json(object data, string contentType, Encoding contentEncoding, JsonRequestBehavior behavior) { return new ToJsonResult { Data = data, ContentEncoding = contentEncoding, ContentType = contentType, JsonRequestBehavior = behavior, FormateStr = "yyyy-MM-dd HH:mm:ss" }; } /// <summary> /// 返回JsonResult.24 /// </summary> /// <param name="data">数据</param> /// <param name="behavior">行为</param> /// <param name="format">json中dateTime类型的格式</param> /// <returns>Json</returns> protected JsonResult MyJson(object data, JsonRequestBehavior behavior, string format) { return new ToJsonResult { Data = data, JsonRequestBehavior = behavior, FormateStr = format }; } /// <summary> /// 返回JsonResult42 /// </summary> /// <param name="data">数据</param> /// <param name="format">数据格式</param> /// <returns>Json</returns> protected JsonResult MyJson(object data, string format) { return new ToJsonResult { Data = data, FormateStr = format }; } /// <summary> /// 检查SQL语句合法性 /// </summary> /// <param name="sql"></param> /// <returns></returns> public bool ValidateSQL(string sql, ref string msg) { if (sql.ToLower().IndexOf("delete") > 0) { msg = "查询参数中含有非法语句DELETE"; return false; } if (sql.ToLower().IndexOf("update") > 0) { msg = "查询参数中含有非法语句UPDATE"; return false; } if (sql.ToLower().IndexOf("insert") > 0) { msg = "查询参数中含有非法语句INSERT"; return false; } return true; } }}
好了,我们运行,其实就是这么一回事!
0 0
- MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
- JQuery返回Json日期格式的问题/Date(1387900800000)/
- 格式化Spring MVC 返回json的Date格式
- Json返回/Date(1429175003077)/格式日期转换
- JQuery返回Json日期格式的問題 jquery对时间/Date(1387900800000)进行处理
- Spring MVC springmvc学习笔记--json--返回json的日期格式问题
- mongoimport 按json格式导入,date 日期 $date 的处理
- 解决Struts2 json-plugin Date或Timestamp等日期格式带T的问题
- 解决Struts2 json-plugin Date或Timestamp等日期格式带T的问题
- 解决Struts2 json-plugin Date或Timestamp等日期格式带T的问题
- 返回json的日期格式问题
- springmvc返回json的日期格式问题
- Spring MVC返回JSON格式的数据
- Spring MVC返回JSON格式的数据
- SpringMVC中在使用@ResponseBody时如何将Date类型的日期返回指定格式的json数据
- 通过自定义MVC的Controller的Json转换器解决日期序列化格式问题
- json返回日期格式化的解决
- 返回easyui/extjs中datagrid使用的json格式
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(13)-系统日志和异常的处理③
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-EasyUI缺陷修复与扩展
- Easyui 让Window弹出居中与最大化后居中
- Easyui 让DataGrid适应浏览器宽度
- MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(15)-权限管理系统准备
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码
- Android学习笔记-广播机制的一些简单实例
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(18)-权限管理系统-表数据
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(19)-权限管理系统-用户登录
- 跟我学数据结构之图
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单