在我的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不同。我在这里缺少什么?
答案 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