How to pass a JSON date value via ASP.NET MVC using JSON.NET?
Possible Duplicate:
Format a Microsoft JSON date?
在ASP.NET
1 | {"d":"\/Date(1240718400000)\/"} |
这已经是产品处理与在客户端侧这就是problematic。。。。。。。什么是你的建议的方法的方法来发送日期值和倒死了吗? </P >
这是在堆栈溢出的另一个日志中发现的:
1 | var date = new Date(parseInt(jsonDate.substr(6))); |
substr函数提取"/date"("part",parseint函数获取整数并忽略末尾的")/"。生成的数字将传递给日期构造函数。
如果您没有绑定到MS JSON序列化程序,那么可以使用json.net。它附带了一个isodateTimeConverter来处理序列化日期的问题。这将把日期序列化为ISO 8601格式的字符串。
例如,在我们的项目中,序列化
1 2 3 4 | JsonNetResult jsonNetResult = new JsonNetResult(); jsonNetResult.Formatting = Formatting.Indented; jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter()); jsonNetResult.Data = myObject; |
如果您决定进行json.net插入,您还需要获取jsonnetresult,因为它返回一个可在ASP.NET MVC应用程序中使用的actionresult。它很容易使用。
有关更多信息,请参见:json.net的good(date)times
它可能很难看,但它起作用:
1 2 | var epoch = (new RegExp('/Date\\((-?[0-9]+)\\)/')).exec(d); $("#field").text((new Date(parseInt(epoch[1]))).toDateString()); |
可能,不需要匹配整个字符串,只需要(-?[0-9]+)足够了…
不是每个人都同意我的观点,这是一个好主意,但我发现自己经常返回格式化字符串,而不是正确的日期。了解如何处理ASP.NET Ajax返回的JSON日期。
在客户端自动转换日期(如果使用jquery)
——
您没有指定它,但是由于您使用的是ASP.NET MVC,所以您可能使用jquery。如果你这样做了,转换为实际日期就变得简单了,如果你使用这个博客文章上提供的代码。代码扩展了jquery的
我将它与ASP.NET MVC一起使用,它的工作方式就像一个魅力。最好的一点是它也是向后兼容的。使用
扩展使用本地浏览器JSON支持(如果适用),也可以在其他不支持的浏览器中使用。不管怎样,现代浏览器都支持这种功能。
在玩了json.net库之后,我想知道为什么您会选择使用isodateTimeConverter而不是JavaScriptDateTimeConverter。
我发现在从MVC控制器序列化日期时,使用ext-js接口更容易。
1 2 3 4 | JsonNetResult jsonNetResult = new JsonNetResult(); jsonNetResult.Formatting = Formatting.Indented; jsonNetResult.SerializerSettings.Converters.Add(new JavaScriptDateTimeConverter()); jsonNetResult.Data = myObject; |
我将把这些数据返回到ext.data.jsonstore中,它可以获取作为日期返回的值,而不必指定要分析的日期格式。
1 2 3 4 5 6 7 8 | store:new Ext.data.JsonStore({ url: pathContext + '/Subject.mvc/Notices', baseParams: { subjectId: this.subjectId }, fields: [ {name: 'Title'}, {name: 'DateCreated', type: 'date' } ] }), |
JSON返回的结果如下:
1 | [{"Title":"Some title","DateCreated":new Date(1259175818323)}] |
如果你不需要的话,没有任何理由转换成ISO 8601格式并返回。
看看jquery、ajax、asp.net和日期的博客。
它详细介绍了如何使用ASP.NET MVC和JQuery在服务器和客户端之间通过JSON传递日期。