Asp.net mvc UK日期时间字段的数据批注范围

Asp.net mvc UK日期时间字段的数据批注范围,asp.net-mvc,datetime,data-annotations,Asp.net Mvc,Datetime,Data Annotations,我想使用数据注释来验证DateTime字段,但遇到了问题。根据MSDN()上的文档,应该执行以下操作 [Range(typeof(DateTime), "1/2/2004", "3/4/2004", ErrorMessage = "Value for {0} must be between {1} and {2}")] 但是,这会将我输入的任何日期标记为无效 起初,我以为它没有选择英国日期(当我尝试26/2/2004),但我甚至不能让它使用日期,如2/2/2004 我在MVC2中使用D

我想使用数据注释来验证DateTime字段,但遇到了问题。根据MSDN()上的文档,应该执行以下操作

[Range(typeof(DateTime), "1/2/2004", "3/4/2004",
    ErrorMessage = "Value for {0} must be between {1} and {2}")]
但是,这会将我输入的任何日期标记为无效

起初,我以为它没有选择英国日期(当我尝试26/2/2004),但我甚至不能让它使用日期,如2/2/2004

我在MVC2中使用DataAnnotation,并使用MicrosoftAjax框架进行客户端验证

有什么建议吗


谢谢

据我所知,RangeAttribute只能在客户端验证数字,您必须编写一个自定义javascript验证器才能工作


查看一个关于如何做到这一点的示例。

好吧,几年过去了,我用MVC4重新讨论了这个问题,我可以告诉你,它显然已经解决了

我创建了一个非常简单的默认MVC4站点,并为date成员提供了以下属性

    [Required]
    [DataType(DataType.Date)]
    [Range(typeof(DateTime), "1/2/2004", "3/4/2004", ErrorMessage = "Value for {0} must be between {1} and {2}")]
    public DateTime BlogDate { get; set; }
该验证现在在英国数据系统下运行良好,不允许日期为2004年2月1日,允许日期为2004年4月3日或2004年26月3日

我使用的模板利用了CodeFirstEF4,但我没有任何理由怀疑它通常没有被修复,因为javascript也能正常工作


因此,如果您使用MVC2,这可能仍然是一个问题,但我发现最好的解决方案是使用MVC4,只要它对您可用。

我目前的问题是,我无法让它在服务器端工作!一旦服务器端开始工作,客户端就是我必须解决的问题。好吧,它对我来说是有效的,你如何显示你的字段,为了让你的属性正常工作,我认为你必须使用Html.EditorFor或Html.Editor方法EF代码首先与这个答案中的任何内容有什么关系?这种验证从未接近您的DAL。