在我的MVC4项目中,我使用带有jQuery datepicker的TextBox.我已经格式化使用dd-MM-yyyy格式.然后代表搜索动作,我使用了一个由我的控制器处理的ajax GET动作.处理方法使用viewmodel作为输入.在调试此GET操作的结果时我注意到的是,日期是以MM-dd-yyyy格式处理的.但是,当我使用POST操作时,dd-MM-yyyy会按照我的意愿收到日期.
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不同.我在这里错过了什么?
解决方法
So this almost makes me think that MVC parses DateTimes different on
being a GET and POST. What am I missing here?
你没有遗漏任何东西.情况确实如此.在GET中,日期总是以yyyy-MM-dd的形式出现,而对于POST,则考虑当前的文化.你可以在这里阅读更多相关信息:http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx