Я экспериментирую с магистральным javascript после просмотра скриншотов Tekpub MVC3 Роба Коннери
Мне нравится его доступ к базе данных Massive, но как только он становится немного сложнее, чем видео, возможно, покажет вам.
я добавил дополнительные поля в свою базу данных, будучи 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();
}
это делает дату / время из этого: {19/10/2011 1:58:27}
в это: "19/10/2011"
(* значения, взятые из окна быстрого просмотра во время выполнения ..., в основном сводятся к потере точности и теперь являются базовой строкой.
после того, как магистраль отправляет это обратно на сервер (при вызове model.save ()), я пытаюсь обновить модель, как это делает Роб:
[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, которая превращает ее в строку с потерей данных и не возвращает ее к правильной дате.
но все же, может быть, у кого-то есть лучший способ сделать это ...
Любые идеи приветствуются ...