1

我正在尝试通过 POST 或 PUT 以 UNIX 时间格式发送一个简单的 DateTime 属性:

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

到我的 ASP.NET MVC 4 WEBAPI 操作:

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

UserInfo 是一个常用的模型

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

用于 EF4 DbContext

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

在调试和让我的模型在控制器的操作中,我有我的 DateTime 道具,但格式错误:

{01.01.0001 0:00:00}

我的错误在哪里,我该如何解决?

所有其他字段都正确。像 "dd.MM.yyyy hh:mm:ss" 这样的字符串运行良好。我试图发送:

  • {“创建”:“日期(1307871513107)”}
  • {“创建”:“/日期(1307871513107)/”}
  • {“创建”:“/日期(1307871513107)/”}
  • {“创建”:“\日期(1307871513107)\”}
  • 等等

谢谢。

4

1 回答 1

3

基本上你有三个选择:

  • 将数据作为 ViewModel 接收,日期为字符串,然后像这样解析它
  • 在模型上定义两个属性,一个被 EF 忽略(作为字符串),另一个在 AJAX 中为空(作为日期)。在控制器中收到日期后解析值
  • 创建自定义模型绑定器

选择一个对你来说更容易的,我想是第二个。

于 2012-04-12T11:50:54.977 回答