asp.net-mvc-3 – MVC模型范围验证器?
发布时间:2020-05-22 11:18:46 所属栏目: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-mvc – Visual Studio在剃刀语句中显示语法错误但有
- asp.net-mvc – Chrome 27中SignalR和跨域请求的问题
- asp.net – 如何删除日历的最后一周
- asp.net – 如何在Web.config中启用SmtpClient的SSL
- asp.net-mvc – ASP MVC 3 RequireHttps属性将所有链接更改
- asp.net – 用于DropDownList的MVC2 EditorTemplate
- asp.net – 如何为Google Chrome启用自动登录用户身份验证
- 你如何在ASP.NET中配置httpOnlyCookies?
- .net – .ToTitleCase不适用于所有大写字符串
- ASP.NET中的基页
推荐文章
站长推荐
- asp.net – HttpContext.Current.Request.IsAuth
- asp.net – 每个会话的NH请求 – “会话已关闭
- ASP.NET中TextBox使用Ajax控件显示日期不全的问题
- asp.net – requestValidationMode 4.5 vs 2.0
- ASP.NET:获取页面的文件名
- 在ASP.NET中生成图像缩略图?
- asp.net – 如何在Windows 10 / IIS 10上附加到I
- 如何刷新#include文件 – 它们在IIS7 / ASP.NET上
- asp.net-mvc – Mvc区域路由?
- 我们可以将asp.net mvc 4应用程序部署到带有Wind
热点阅读
