asp.net-mvc-3 – MVC模型范围验证器?
发布时间:2020-07-09 06:58:25 所属栏目: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 Core 1.0 ConfigurationBuilder().AddJsonFile(“a
- asp.net-mvc – ASP.Net MVC中的自我AJAX更新部分视图/控制
- asp.net-mvc – asp.net mvc博客引擎
- asp.net-web-api – Web Api:找不到System.Net.Http版本2.
- asp.net – WebForms:MasterPages中的动态(或绝对)脚本标记
- 服务器端ASP.Net Ajax异常处理
- asp.net – Javascript日期本地化
- asp.net-mvc-3 – 如何在Razor中为Nullable创建编辑器模板
- asp.net-mvc-2 – 带有数组/列表的ASP.NET MVC 2模型
推荐文章
站长推荐
- 如何处理在MVC视图中应用程序启动和传输和显示错
- asp.net – 绑定ListView InsertItemTemplate中的
- asp.net编程实现删除文件夹及文件夹下文件的方法
- asp.net-mvc – 如何在ASP.NET MVC中传递页面的元
- 并行运行ASP.NET Webforms和ASP.NET MVC
- asp.net – 脚本标签和链接标签进入asp:内容或外
- asp.net-mvc – 只发布控制器
- asp.net-mvc-3 – 为MVC3应用程序配置Ninject的正
- asp.net-mvc – 在Controller操作方法中重用代码
- asp.net-mvc – 缩小ASP.NET MVC中的Action Filt
热点阅读
