我在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模型绑定起作用?
答案 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"