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

时间:2012-10-18 12:43:10

标签: post asp.net-mvc-4 asp.net-web-api

我将数据发布到我的网络API,我发布的参数之一是日期选择器选择的日期。

以下是操作的发布数据(从firebug获取这些值)

  

EndDate:“18/10/2012”(注:格式为: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;}
}

在我的网络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>

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

更多人发现震惊!!!

我刚用普通的控制器而不是web api控制器尝试了这个,它适用于非api控制器。有没有其他人遇到过这个问题?

对于正常行动(非网络api),我甚至不必为此设置任何文化。

请帮忙。

2 个答案:

答案 0 :(得分:0)

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

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

我知道这不是人们想要的最佳解决方案,但这可以完成工作。

答案 1 :(得分:0)

我想知道你是否可以在JsonMediaTypeFormatter上调整你的JsonSerializerSettings。

config.Formatters.JsonFormatter.SerializerSettings.DateFormatHandling = ...