在ajax GET和POST操作中,MVC是否以不同方式解析DateTime对象?

时间:2013-11-13 12:10:29

标签: c# jquery ajax asp.net-mvc datetime

在我的MVC4项目中,我使用带有jQuery datepicker的TextBox。我已经格式化使用dd-MM-yyyy格式。然后代表搜索动作,我使用了一个由我的控制器处理的ajax GET动作。处理方法使用ViewModel作为输入。在调试此GET操作的结果时我注意到的是,日期是以MM-dd-yyyy格式处理的。但是,当我使用POST操作时,会按照我的要求在dd-MM-yyyy中收到日期。

我使用Fiddler来查看实际发送的内容并看到以下内容:

GET - > MyDate = 04-11-2013(在网址中) POST - > MyDate = 04-11-2013(在体内)

所以没有区别。然后我转到我的控制器中的动作处理程序方法,并从ViewModel输入中查看结果。

GET - > viewModel.MyDate显示11-04-2013 POST - > viewModel.MyDate给出了04-11-2013

所以这几乎让我觉得MVC在GET和POST上解析DateTimes不同。我在这里缺少什么?

1 个答案:

答案 0 :(得分:7)

  

所以这几乎让我觉得MVC解析DateTimes不同   是一个GET和POST。我在这里缺少什么?

你没有遗漏任何东西。情况确实如此。在GET中,日期总是以yyyy-MM-dd的形式出现,而对于POST,则考虑当前的文化。您可以在此处详细了解:http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx