Post 在ASP.NET MVC 4中将数据发布到web api控制器时,日期格式发生更改

Post 在ASP.NET MVC 4中将数据发布到web api控制器时,日期格式发生更改,post,asp.net-mvc-4,asp.net-web-api,Post,Asp.net Mvc 4,Asp.net Web Api,我将数据发布到我的web api,我发布的参数之一是日期选择器选择的日期 下面是操作的post数据(从firebug获得这些值) 结束日期:“2012年10月18日”(注:格式为:dd/mm/yyyy) ABC:“不用麻烦了……” XYZ:“不用麻烦了……” LMNO:“别麻烦了……” 现在在我的控制器中,我有一个类,上面有3个字符串字段和一个日期字段 public class PostModel{ public string ABC {get;set;} public string

我将数据发布到我的web api,我发布的参数之一是日期选择器选择的日期

下面是操作的post数据(从firebug获得这些值)

结束日期:“2012年10月18日”(注:格式为:dd/mm/yyyy)

ABC:“不用麻烦了……”

XYZ:“不用麻烦了……”

LMNO:“别麻烦了……”

现在在我的控制器中,我有一个类,上面有3个字符串字段和一个日期字段

public class PostModel{

  public string ABC {get;set;}
  public string XYZ {get;set;}
  public string LMNO {get;set;}
  public DateTime EndDate {get;set;}
}
在我的web api中,它看起来有点像下面所示

public Something PostSomething(PostModel model)
{}
这里我得到的是“mm/dd/yyyy”格式的EndDate值。我想要的是“dd/mm/yyyy”。

为此,我还在web.config文件中添加了一个条目,如下所示

<system.web>
<globalization uiCulture="en-GB" culture="en-GB" />
</system.web>

这仍然没有帮助,请有人告诉我我做错了什么

更令人震惊的发现

我只是用一个普通的控制器而不是WebAPI控制器尝试了一下,它对非api控制器有效。还有其他人遇到过这个问题吗

对于正常操作(非web api),我甚至不必为此设置任何区域性


请提供帮助。

将我的结束日期时间字段更改为字符串,然后将此结束日期作为字符串发布到我的控制器

然后在控制器中,使用
DateTime.Parse()
将该字符串转换为日期


我知道这不是人们想要的最佳解决方案,但这就完成了任务。

我想知道您是否可以调整JsonMediaTypeFormatter上的JsonSerializerSettings


config.Formatters.JsonFormatter.SerializerSettings.DateFormatHandling=…

这里建议了一些解决方案:。但他们似乎都没有完全解决这个问题。