我在QueryString中以值:3/1/2012开始更新
DateTime.Parse(Request.QueryString [“startdate”]).月返回月份数:1
但在我的控制器中我有动作索引(DateTime startDate)和startDate.Month返回3
是否有人可以解释为什么日期绑定不能按预期工作?
顺便说一句,我已经在web.config中有了文化:
<globalization uiCulture="en-GB" culture="en-GB"/>
解决方法
无论您在web.config中配置了哪种文化,默认模型绑定程序在解析查询字符串值时始终使用InvarianCulture.
> GET => InvariantCulture的
> POST =>文化不可知论者
所以假设你有2个动作:
[HttpGet] public ActionResult Foo(DateTime date) { ... } [HttpPost] public ActionResult Bar(DateTime date) { ... }
当您调用Foo操作时,应始终使用不变文化来格式化查询字符串中的日期,而当您调用Bar操作并在POST主体有效内容中传递date参数时,默认模型绑定器将使用在你的web.config.
请查看following blog post,其中详细介绍了这一点.