因mvc控制器返回类型JsonResult 在处理对象转JSON的时候,对日期的格式化处理并不太符合要求,所以重新继承抽象类ActionResult使用Newtonsoft.Json来系列化
using System; using System.Text; using System.Web; using System.Web.Mvc; using Newtonsoft.Json; namespace Comon { public class JsonNetResult : ActionResult { /// <summary> /// 在静态构造函数中设置JsonNet的时间处理方式 /// </summary> static JsonNetResult() { JsonSerializerSettings settings = new JsonSerializerSettings(); JsonConvert.DefaultSettings = () => { //日期类型默认格式化处理 settings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat; settings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; return settings; }; } /// <summary>初始化 <see cref="T:System.Web.Mvc.JsonResult" /> 类的新实例。</summary> public JsonNetResult() { JsonRequestBehavior = JsonRequestBehavior.AllowGet; } /// <summary>获取或设置内容编码。</summary> /// <returns>内容编码。</returns> public Encoding ContentEncoding { get; set; } /// <summary>获取或设置内容的类型。</summary> /// <returns>内容的类型。</returns> public string ContentType { get; set; } /// <summary>获取或设置数据。</summary> /// <returns>数据。</returns> public object Data { get; set; } /// <summary>获取或设置一个值,该值指示是否允许来自客户端的 HTTP GET 请求。</summary> /// <returns>一个值,指示是否允许来自客户端的 HTTP GET 请求。</returns> public JsonRequestBehavior JsonRequestBehavior { get; set; } /// <summary>通过从 <see cref="T:System.Web.Mvc.ActionResult" /> 类继承的自定义类型,启用对操作方法结果的处理。</summary> /// <param name="context">执行结果时所处的上下文。</param> /// <exception cref="T:System.ArgumentNullException"> /// <paramref name="context" /> 参数为 null。 /// </exception> public override void ExecuteResult(ControllerContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); if (JsonRequestBehavior == JsonRequestBehavior.DenyGet && string.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase)) throw new InvalidOperationException("不允许使用Get方法访问"); HttpResponseBase response = context.HttpContext.Response; response.ContentType = string.IsNullOrEmpty(ContentType) ? "application/json" : ContentType; if (ContentEncoding != null) response.ContentEncoding = ContentEncoding; if (Data == null) return; response.Write(JsonConvert.SerializeObject(Data)); } } }
在静态构造函数里面设置了系列化日期的格式