在看到 Rob Connery 的 Tekpub MVC3 截屏视频后,我正在试验主干 javascript
我喜欢他的海量数据库访问,但是一旦它变得比视频可能向您展示的复杂一点。
我在我的数据库中添加了额外的字段,即datetime
字段。但是,这个 javascript 序列化程序会将它们转换为字符串
public string toJson(dynamic content) {
var serializer = new JavaScriptSerializer();
serializer.RegisterConverters(new JavaScriptConverter[] { new ExpandoObjectConverter() });
var json = serializer.Serialize(content);
return json.ToString();
}
这使得日期时间从 this:{19/10/2011 1:58:27}
变为 this: "19/10/2011"
(*values 从运行时的 quickwatch 窗口中获取...,基本上归结为精度损失,它现在是一个基本字符串。
在骨干网将其推回服务器后(在 model.save() 调用上),我尝试像 Rob 一样更新模型:
[HttpPut]
public ActionResult Edit()
{
var model = SqueezeJson();
model.UpdatedAt = DateTime.Now;
_movies.Update(model, model.Id);
return CmoJSON(model);
}
对于 SqueezeJson 功能,检查他的来源
导致这样的错误:
Arithmetic overflow error converting expression to data type datetime.
我有点预料到会发生这种情况,因为我注意到日期被转储到字符串中,我不知道它会如何使用大规模返回到日期时间。
有没有人在这样的上下文中使用大量和日期(序列化到 json 和从 json 序列化)?我知道问题本身并不一定是巨大的,它是 json 序列化将它变成了一个丢失数据的字符串,并且没有将它返回到正确的日期。
但是,也许有人有更好的方法来做到这一点......欢迎任何想法......