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