我有一个 MVC3 应用程序,其中一个页面有一个jQuery datepicker:
<script>
$(function () {
$("#expirationDate").datepicker();
$("#expirationDate").datepicker("option", "dateFormat", "dd/mm/yy");
});
</script>
using (Html.BeginForm())
{
@Html.TextBox("expirationDate")
<input type="submit" value="Submit" />
}
控制器动作是这样的:
public ActionResult DoStuff(String expirationDate)
{
return View();
}
日期选择器看起来很好,但行为很奇怪。
我在其中输入了一些日期,例如 2012 年 12 月 31 日为 12 月 31 日(注意我将格式指定为dd/mm/yy
)并按下按钮。控制进入控制器,我看到该expirationDate
变量保持31/12/2012
值。然后操作返回,然后我看到文本框为空。
然后我尝试 2012 年 10 月 12 日 - 它开始执行操作,但是当页面再次显示时,它变成 2012 年 12 月 10 日 - 显然月份和日期被交换了。也许在 31/12 的情况下,它看到交换它们会产生一个无效的日期并丢弃它。
尽管明确指定了格式,为什么日期和月份会被交换?