asp web api DateTime模型绑定

时间:2013-02-04 18:38:36

标签: asp.net-web-api

我在web api中绑定DateTimes时遇到了一些麻烦。情况就是这样。我有一个控制器,它返回一个带有DateTime属性的模型。我已经设置了我的web api,在global.asax中使用IsoDateFormat和UTC时间,如下所示:

        HttpConfiguration config = GlobalConfiguration.Configuration;
        config.Formatters.JsonFormatter.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
        config.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;

日期时间格式以这种格式返回给客户端: 2013-02-04T11:24:48.91Z

这方面的一切都很好。但是,如果我以相同的格式发回它,模型绑定器不会识别该属性并将其保留为null。输入日期时间需要什么格式才能使默认的DateTime模型绑定起作用?

1 个答案:

答案 0 :(得分:3)

我已按照您指定的方式配置了我的Web API服务,并且我能够发布您指定格式的DateTime。你的DateTime参数有[FromBody]吗?默认情况下,原始类型为[FromUri]

public DateTime Post([FromBody]DateTime date)
{
    return date;
}

请求:

POST http://localhost/api/values HTTP/1.1
content-type: application/json
Content-Length: 25

"2013-02-04T11:24:48.91Z"

响应:

HTTP/1.1 200 OK
Content-Length: 25
Content-Type: application/json; charset=utf-8

"2013-02-04T11:24:48.91Z"