我向API控制器提交了JSON对象,日期值为"02/11/2015“(DD/MM/YYYY)。由于某些原因,它在绑定时被转换为美国格式(2月11日)。我在相同的解决方案中有标准的MVC控制器,它正确地绑定了以相同格式提交的日期值(英国)。造成这种差异的原因是什么:
下面是标准的MVC提交头:
Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8,pl;q=0.6
Cache-Control:no-cache
Connection:keep-alive
X-Requested-With:XMLHttpRequest和表单数据
StartDate : 01/11/2015下面是API调用头
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,pl;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Content-Type:application/json; charset=UTF-8
X-Requested-With:XMLHttpRequest和我传递的JSON对象
{ DateStart: "01/11/2015" }发布于 2015-11-03 18:54:51
我猜webapi json序列化程序中的默认dateFormat与MVC的不同。
尝试在配置文件(App_start/WebApiConfig)的WebApi中指定。
示例:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;或GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.DateFormatString = "yyyy-MM-dd“
使用您需要的DateFormat、DateZone。
更多信息请点击此处:
https://stackoverflow.com/questions/33496699
复制相似问题