asp.net-mvc-3 – MVC模型范围验证器?
发布时间:2020-07-09 06:32:04 所属栏目:asp.Net 来源:互联网
导读:我想验证日期时间,我的代码是: [Range(typeof(DateTime), DateTime.Now.AddYears(-65).ToShortDateString(), DateTime.Now.AddYears(-18).ToShortDateString(), ErrorMessage = Value for {0} must be between
我想验证日期时间,我的代码是: [Range(typeof(DateTime),DateTime.Now.AddYears(-65).ToShortDateString(),DateTime.Now.AddYears(-18).ToShortDateString(),ErrorMessage = "Value for {0} must be between {1} and {2}")] public DateTime Birthday { get; set; } 但我得到错误: An attribute argument must be a constant expression,typeof expression or array creation expression of an attribute parameter type 请帮帮我? 解决方法这意味着Range属性的值不能在以后确定,必须在编译时确定. DateTime.Now不是常量,它根据代码运行的时间而变化.你想要的是一个自定义DataAnnotation验证器.以下是如何构建一个示例: How to create Custom Data Annotation Validators 将您的日期验证逻辑放在IsValid()中 这是一个实现.我也使用DateTime.Subtract()而不是负数年. public class DateRangeAttribute : ValidationAttribute { public int FirstDateYears { get; set; } public int SecondDateYears { get; set; } public DateRangeAttribute() { FirstDateYears = 65; SecondDateYears = 18; } public override bool IsValid(object value) { DateTime date = DateTime.Parse(value); // assuming it's in a parsable string format if (date >= DateTime.Now.AddYears(-FirstDateYears)) && date <= DateTime.Now.AddYears(-SecondDateYears))) { return true; } return false; } } 用法是: [DateRange(ErrorMessage = "Must be between 18 and 65 years ago")] public DateTime Birthday { get; set; } 它也是通用的,因此您可以指定多年的新范围值. [DateRange(FirstDateYears = 20,SecondDateYears = 10,ErrorMessage = "Must be between 10 and 20 years ago")] public DateTime Birthday { get; set; } (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- IIS ASP.NET WebApi在请求同一台服务器时死锁
- asp.net – ASP:ItemTemplate中的DropDownList:为什么允许
- asp.net – Request.Browser.Platform不返回iPad,OSX或Wind
- asp.net-mvc – 可以浏览DataAnnotations的自定义Html帮助器
- asp.net-mvc – ASP.Net [HiddenInput]数据属性在Razor中用
- asp.net-mvc-4 – 如何在asp.net MVC4查看页面中包含javasc
- asp.net-mvc – ACS安装,但MVC 4.0应用程序仍然重定向,无法
- 在ASP.NET中下载文件的实现代码
- asp.net-mvc – 如何与NopCommerce MVC合作
- ASP.net MVC ValidationSummary总是被渲染
推荐文章
站长推荐
- asp.net-mvc – DDD原理和ASP.NET MVC项目设计
- asp.net – GetExternalLoginInfoAsync()loginIn
- ASP.NET通过自定义函数实现对字符串的大小写切换
- asp.net – 在Azure网站上启用gzip压缩
- asp.net-mvc – 如何通过URL传递日期,为我的Acti
- asp.net中一个linq分页实现代码
- jQuery Ajax方法调用 Asp.Net WebService 的详细
- asp.net – UserControl Viewstate在回发后丢失所
- asp.net – Jquery Ajax,不在Internet Explorer中
- asp.net-mvc – 帖子上的Mvc模型ID 0
热点阅读