asp.net-mvc-3 – MVC模型范围验证器?
发布时间:2020-07-09 06:47:28 所属栏目: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; } (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 充分利用ASP.NET的三种缓存提高站点性能的注意方法
- ASP.Net Web应用程序安全性不适用于IIS 7?
- asp.net-mvc – ViewModel中的最佳实践
- 如何保护我的ASP.NET AJAX应用程序?
- asp.net-mvc-3 – dataannotations在主键上设置标识种子值,
- asp.net-mvc-3 – Azure网站上的RavenDb – 访问被拒绝
- asp.net – 在调用异步方法时不使用等待来防止死锁
- asp.net-mvc – Url.Action生成查询字符串,以任何方式生成完
- asp.net-mvc – 如何设置AntiForgeryToken cookie路径
- asp.net – 如何从复选框列表中获取最新的选定值?
推荐文章
站长推荐
- 在asp.net c#应用程序中使用Graphviz Dll
- asp.net – UserControl Viewstate在回发后丢失所
- ASP.NET web.config文件是否失控?
- asp.net-mvc – 是否可以为post和get提供重复的动
- asp.net core webapi 服务端配置跨域的实例
- asp.net-mvc – 在MVC命令,优先级和功能问题中授
- ASP.NET中操作SQL数据库(连接字符串的配置及获取
- 为什么asp.net会员资格有用户表和会员表?
- ASP.NET web.config中数据库连接字符串connectio
- 什么OverrideAuthenticationAttribute是为什么?
热点阅读