ASP.NET MVC中JSON.NET代替JavaScriptSerializer
使用JSON.NET 代替(The benefit of using JsonNetResult over the built in JsonResult is you get a better serializer (IMO [:)]) and all the other benefits of Json.NET like nicely formatted JSON text.)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Mvc; using Newtonsoft.Json; using System.Web; //http://stackoverflow.com/questions/15816319/what-does-asp-net-mvc-4-0-used-for-json-serialization //http://stackoverflow.com/questions/7109967/using-json-net-as-default-json-serializer-in-asp-net-mvc-3-is-it-possible //http://stackoverflow.com/questions/15738691/newtonsoft-json //http://wingkaiwan.com/2012/12/28/replacing-mvc-javascriptserializer-with-json-net-jsonserializer/ /** * 版权所有 All Rights Reserved * * @author Irving_Zhou * @description ASP.NET MVC 使用Newtonsoft.Json * @date 2013年10月20日10:17:45 * @version 1.0.0 * @email zhouyongtao@outlook.com * @blog http://www.cnblogs.com/Irving/ * @refer http://james.newtonking.com/archive/2008/10/16/asp-net-mvc-and-json-net */ namespace NRainel.Ajax { public class JsonNetResult : ActionResult { /// <summary> /// 编码格式 /// </summary> public Encoding ContentEncoding { get; set; } /// <summary> /// 请求头 /// </summary> public string ContentType { get; set; } /// <summary> /// 请求数据 /// </summary> public object Data { get; set; } /// <summary> /// 序列化转换器 /// </summary> public JsonSerializerSettings SerializerSettings { get; set; } /// <summary> /// 序列化格式化 /// </summary> public Formatting Formatting { get; set; } public JsonNetResult() { SerializerSettings = new JsonSerializerSettings(); } /// <summary> /// 重写执行上下文 /// </summary> /// <param name="context"></param> public override void ExecuteResult(ControllerContext context) { if (context == null) throw new ArgumentNullException("context"); HttpResponseBase response = context.HttpContext.Response; response.ContentType = !string.IsNullOrEmpty(ContentType) ? ContentType : "application/json"; if (ContentEncoding != null) response.ContentEncoding = ContentEncoding; if (Data != null) { JsonTextWriter writer = new JsonTextWriter(response.Output) { Formatting = Formatting }; JsonSerializer serializer = JsonSerializer.Create(SerializerSettings); serializer.Serialize(writer, Data); writer.Flush(); } } } }
JS日期转换
// 为 jQuery 扩展一个转换日期的方法 jQuery.extend( { toDate: function (date) { var date = new Date(parseInt(date.substring(6))); return date; }, toDateString: function (jsDate) { return "\/Date(" + jsDate.getTime() + "+0000)\/"; } } );
Refer:http://james.newtonking.com/archive/2008/10/16/asp-net-mvc-and-json-net