定义:
1 [Range(typeof(DateTime),"2013/1/1","2013/12/31")] 2 public DateTime EndTime { get; set; }
在页面中输入信息: 2013/2/1 或 2013/12/13 12:13:14 这样的数据后都显示同样的错误:
The field EndTime must be between 2013/1/1 0:00:00 and 2013/12/31 0:00:00.
为什么我输入日期或日期加时间的格式,都不能通过 MVC 自带的 JQuery 数据验证呢?
1查看一下你得到的model里的数据是什么
2查看一下你页面里生成的验证信息是什么,和jquery.validation的用法是否一致
输入 2013/9/12 EndTime 的值,就是 "2013/9/12" 。
输入 2013/9/12 17:07 EndTime 的值,就是 “2013/9/12 17:07”
谢谢,回复,我问的问题有点错误,是不能通过 MVC 自己带的 JQuery 数据验证。MVC Model 的数据定义是可以通过的。
@lskdjf: 页面上默认上用的就是jquery.validation,所以你要看一下,生成的html里的是什么,然后对照一下文档,查看生成的是否正确。一般这种错误就是生成的验证信息有问题。
@sinhbv:
<input class="text-box single-line" data-val="true" data-val-date="The field EndTime must be a date." data-val-range="The field EndTime must be between 2013/1/1 0:00:00 and 2013/12/31 0:00:00." data-val-range-max="12/31/2013 00:00:00" data-val-range-min="01/01/2013 00:00:00" data-val-required="The EndTime field is required." id="EndTime" name="EndTime" type="datetime" value="" />
这是自动生成的代码。
我如果把 JQuery 关掉,输入 2013/9/13 可以通过, 输入 2013/9/13 17:29:30 也可以通过 。
当开启 JQuery 后,就不行了,我试着输入 12/12/2013 ,不行, 12/12/2013 17:29:30 同样不行。
@lskdjf: 从生成的这段代码来看的话,你可能需要在页面上定义验证函数,实现过程比较复杂,建议还是别在页面上做这种验证了。
@sinhbv: 哎, 我页面上输入 2013/9/12 18:00 ,
在开发工具中,访问 EndTime.Value 的结果是 2013/9/12 18:00,可就是无法通过验证,我"疯"~~~~
使用自定义模型验证