3

Breeze + Knockout + WebAPI + SQLServerCompactを使用した単純なプロジェクトで次の問題が発生しました。

Breezeエンティティを(でDateTime ko.observable)追加して実行するとManager.SaveChanges()、行はSQL Server Compactに正しく保存され、DateTime列は次の形式になります23/12/2012 19.56.33

その後Breezeクエリを実行すると、行が返されますが、DateTime値が認識されません。

無効な日付

dateフィールドはkoで観察可能であるため、値/形式をデバッグできません。これはメソッドです。

SaveChangesこの形式になる前に:Sun Dec 23 21:32:05 UTC+0100 2012

SaveChangesSQL Server Compactテーブルで次の形式で見つけた後:23/12/2012 20.32.05

おそらくBreezeUTCでもそれを期待しています..?

どんな助けでも大歓迎です!

ありがとう

編集:

WebApiBreezeControllerから返されたjsonは次のとおりです。

[
   {
      "$id":"1",
      "$type":"MvcTask.Models.Task, MvcTask",
      "id":110,
      "text":"aaa",
      "done":false,
      "created":"2012-12-23T19.56.33.950"
   }
]
4

2 に答える 2

1

これには、breeze の以前のバージョンで問題がありましたが、以降のバージョンでは修正される予定です。現在のバージョン v.80.1 を試すことはできますか?

于 2012-12-24T00:48:10.920 に答える
-1

あなたの問題は、デフォルトの日付フォーマッタが探しているものを正確に提供していないことに関係しています。UTC 形式でデータを受信して​​いるようですが、コードはこれを想定していません。

ASP.NET Web API Date format in JSON does not serialise successfully をご覧ください。

同様の問題がありますが、シリアライザーをカスタマイズする方法を示しています。私は過去にこの手法を行ったことがあり、問題を解決しました

于 2012-12-23T22:24:32.960 に答える