如何验证用户在 ASP.NET MVC 中指定了正确的日期?
有没有简单的方法来客户端(和服务器)端验证 Date ?
我的想法是有 3 个输入字段,分别表示日、月和年。我使用带注释的模型和 AJAX 验证脚本来客户端验证数据。我怎样才能用日期做到这一点?
我可以设置类似日期的值必须来自 Range<1, 31>但是,如果月份是 2 月,则值 31 无效......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
http://forums.asp.net/p/1500029/3546376.aspx和 http://www.dotnetspider.com/resources/17816-Javascript- date-validation.aspx...可能对用户界面有帮助。一切顺利
http://forums.asp.net/p/1500029/3546376.aspx and http://www.dotnetspider.com/resources/17816-Javascript-date-validation.aspx.... may help u i hope. all the best
我同意@bAN - 最用户友好的方法是使用日期选择器。禁用 JavaScript 的用户必须将日期手动写入文本框中。您还可以检测禁用的 JavaScript,并在这种情况下回退到没有日期选择器的版本。
如果您确实想要 3 个输入字段,那么您有几个选择。您的模型
int day 需要 3 个属性;整月; int 年;
。当您从客户端收到数据时,您必须通过尝试创建DateTime
对象来手动进行验证。如果您指定了不正确的格式,它将抛出异常:为了获得更愉快的用户体验,您可以使用 3 个下拉菜单。您可以根据选择的月份更改天数和/或在客户端运行验证。
I agree with @bAN - the most user friendly way is to use a datepicker. Users with javascript disabled will have to write the dates manually into the textbox. You can also detect disabled javascript and do a fallback to a version without the datepicker in that case.
If you really want 3 input fields, you have a few options though. You need 3 properties on your model
int day; int month; int year;
. When you receive the data from the client, you will have to do the validation manually by trying to create aDateTime
object. It will throw an exception if you specify an incorrect format:As a more pleasant user experience you can have 3 dropdowns instead. You can change the number of days depending on which month is selected and/or run validation at the client side.
自定义模型绑定器似乎是一个很好的解决方案。
A custom model binder seems like a good solution for this.