2

我在使用带有数据注释验证的 jQuery 自定义日期选择器时遇到问题。

这是我的元数据

[Display(Name = "DOB")]
[Required(ErrorMessage = "Please enter {0}")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime MyDate { get; set; }

这是我的观点。

 $(function () {
 $("#MyDate").datepicker({ dateFormat: 'dd/mm/yy' });
 });

@Html.LabelFor(model => model.MyDate)
@Html.EditorFor(mode => mode.MyDate)
@Html.ValidationMessageFor(model => model.MyDate)

例如,当我选择日期时,31/12/2012它显示错误The value '31/12/2001' is not valid for DOB

如果我提供像 mm/dd/yyyy( 12/31/2012) 这样的输入,它会接受。

所以我错过了什么,有人可以帮忙吗?

4

2 回答 2

0

你如何发回你的数据?你在使用网络 api 吗?

我认为您的客户端和服务器端日期格式存在某种冲突。

如果您使用 DatePicker 界面(不是通过手动输入日期)来选择日期,那么选择日期的格式是什么?

尝试在您的 webconfig 中进行设置

<configuration>
  <system.web>
    <globalization culture="en-GB" uiCulture="en-GB"/>
  </system.web>
</configuration>

看看它是否有效。

我在使用任何 jquery 插件时总是使用的另一种选择是jQuery Validity

于 2012-11-26T06:15:12.607 回答
0

回答我自己的问题。

我在这个线程上找到了答案。我们必须在下面添加文化和 UI 文化代码web.config

<globalization uiCulture="en" culture="en-GB" />
于 2012-11-26T14:18:54.103 回答