【发布时间】:2012-06-23 17:19:50
【问题描述】:
我在这样的视图模型中有一个 DateOfBirth 字段,
[Required]
[DataType(DataType.Date)]
[Display(Name = "Date Of Birth")]
public DateTime DateOfBirth { get; set; }
以及拥有这个的视图,
<li>
@Html.LabelFor(m => m.DateOfBirth)
@Html.TextBoxFor(m => m.DateOfBirth)
</li>
和一些 jQuery 来添加日期选择器,
<script type="text/javascript">
$('#DateOfBirth').datepicker({
yearRange: '1906:1994',
changeMonth: true,
changeYear: true,
showAnim: 'bounce'
});
</script>
如果我选择一个日期,例如 1981 年 7 月 19 日,1981 年 7 月 19 日,它会将值作为 01/01/0001 12:00:00 AM 传递给控制器,我收到错误“值 '07/ 19/1981' 对出生日期无效。”我注意到,如果当天的值是 12 或更少,它会通过,但如果一天高于 12,它将失败。所以我尝试将日期选择器中的格式更改为
dateFormat: 'dd/mm/yy'
然后当我提交表单时,它会给出错误“出生日期字段必须是日期”。
我需要做什么来解决这个问题?如果可能的话,我希望能够将日期显示为月/日/年。
【问题讨论】:
-
报错是服务器端还是客户端?
-
嗯,我认为第一个错误是服务器端,它提交然后返回错误值 '07/19/1981' 对于出生日期无效,但第二个错误显示“The字段出生日期必须是日期”似乎是客户端,因为它立即出现并且不提交表单。
-
提交时您的日志会告诉您什么?您应该能够通过查看服务器端日志来判断问题是否存在。此外,您可以在 Chrome 调试器 NET 选项卡或 Firebug NET 选项卡中查看来自服务器的响应。
-
我尝试在您发布的链接中添加帮助程序,并将文本框中的日期格式化为 19/07/1981。我提交时出现同样的错误,“出生日期字段必须是日期”并且不提交,只是再次加载日期选择器并提示输入另一个日期。
标签: jquery .net asp.net-mvc jquery-ui jquery-ui-datepicker