首页 新闻 赞助 找找看

[求助] ASP.NET MVC 数据验证

0
悬赏园豆:20 [已关闭问题] 关闭于 2013-09-13 10:37

定义:

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 数据验证呢?

lskdjf的主页 lskdjf | 初学一级 | 园豆:14
提问于:2013-09-12 16:27
< >
分享
所有回答(2)
0

1查看一下你得到的model里的数据是什么

2查看一下你页面里生成的验证信息是什么,和jquery.validation的用法是否一致

sinhbv | 园豆:2579 (老鸟四级) | 2013-09-12 16:55

输入 2013/9/12 EndTime 的值,就是 "2013/9/12" 。

输入 2013/9/12 17:07 EndTime 的值,就是 “2013/9/12 17:07”

 

谢谢,回复,我问的问题有点错误,是不能通过 MVC 自己带的 JQuery 数据验证。MVC Model 的数据定义是可以通过的。

支持(0) 反对(0) lskdjf | 园豆:14 (初学一级) | 2013-09-12 17:15

@lskdjf:  页面上默认上用的就是jquery.validation,所以你要看一下,生成的html里的是什么,然后对照一下文档,查看生成的是否正确。一般这种错误就是生成的验证信息有问题。

支持(0) 反对(0) sinhbv | 园豆:2579 (老鸟四级) | 2013-09-12 17:25

@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 同样不行。

支持(0) 反对(0) lskdjf | 园豆:14 (初学一级) | 2013-09-12 17:32

@lskdjf: 从生成的这段代码来看的话,你可能需要在页面上定义验证函数,实现过程比较复杂,建议还是别在页面上做这种验证了。

支持(0) 反对(0) sinhbv | 园豆:2579 (老鸟四级) | 2013-09-12 17:58

@sinhbv: 哎, 我页面上输入 2013/9/12 18:00 ,

在开发工具中,访问 EndTime.Value 的结果是 2013/9/12 18:00,可就是无法通过验证,我"疯"~~~~

支持(0) 反对(0) lskdjf | 园豆:14 (初学一级) | 2013-09-12 18:01
0

使用自定义模型验证

lskdjf | 园豆:14 (初学一级) | 2013-09-13 10:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册