今天在做用户列表时发现, asp.net mvc3的控制器在返回JsonResult结果时, 会把对象内的DateTime类型成员,解析为类似于\/Date(1238606590509)\/的格式 , 导致在页面上解析不了, 显示空白。
在网上搜索了一下,这种格式好像是计算从1970.1.1到现在的毫秒数, 为了带宽啥的设计的通用格式。 网上发现大部分解决方案为
- 重写Controller的JsonResult, 看到这种网页就直接关掉, 绝对是走岔路了,微软不会搞个客户端解析不了的格式嘛。
- 在客户端去掉Date外壳,然后重新生成Date, 但是在grid的字段中写renderer, 参数value根本就都是空的,也实现不了。
没有办法了, 只好老老实实地去看文档了, 终于发现在Ext.Date中的一行格式为MS的介绍:
MS Microsoft AJAX serialized dates \/Date(1238606590509)\/ (i.e. UTC milliseconds since epoch) or
\/Date(1238606590509+0800)\/
哇, 发达了, 然后更改Model为:
{name: 'CreateTime', type: 'date', dateFormat: 'MS'}
grid列定义为:
{
header: '创建日期',
dataIndex: 'CreateTime',
flex: 1,
xtype: 'datecolumn',
format: 'Y-m-d H:i:s'
}
然后就正常了, 浪费了大半天的时间啊。
以后还是要多看文档啊