1

UNIX時間形式の単純なDateTimeプロパティをPOSTまたはPUT経由で送信しようとしています。

{ ... "Created": "/Date(1307871513107+0700)/" ... } 

ASP.NET MVC 4 WEBAPIアクションへ:

...
// PUT /api/<controller>/<action>
public HttpResponseMessage PutUser(UserInfo userInfo)
{
...

UserInfoは通常のモデルです

...
public DateTime Created { get; set; }
...

これはEF4DbContextに使用されます

...
public class DgDbContext : DbContext
  {
public DbSet<UserInfo> UserInfo { get; set; }
...

デバッグしてモデルをコントローラーのアクションで取得する際に、DateTimeプロパティがありますが、形式が間違っています。

{01.01.0001 0:00:00}

私の間違いはどこにあり、どうすれば修正できますか?

他のすべてのフィールドは正しくなっています。「dd.MM.yyyyhh:mm:ss」のような文字列は正常に機能しています。私は送信しようとしました:

  • {"作成済み": "日付(1307871513107)"}
  • {"作成済み": "/ Date(1307871513107)/"}
  • {"作成済み": "/ Date(1307871513107)/"}
  • {"作成済み": "\ Date(1307871513107)\"}

ありがとう。

4

1 に答える 1

3

基本的に、次の3 つのオプションがあります。

  • 日付を文字列としてViewModelとしてデータを受け取り、このように解析します
  • モデルに 2 つのプロパティを定義します。1 つは EF に対して無視され (文字列として)、もう 1 つは AJAX からは空になります (日付として)。コントローラーで日付を受け取った後、値を解析します
  • カスタム モデル バインダーを作成する

あなたにとってより簡単なものを選択してください.2番目のものだと思います.

于 2012-04-12T11:50:54.977 に答える