【发布时间】:2014-04-29 22:53:40
【问题描述】:
我正在使用范围验证器来验证日期。我的要求是验证输入日期应该在当前日期和当前日期 -60 年之间。
这是我迄今为止尝试过的,
[Range(typeof(DateTime),DateTime.UtcNow.ToString(),DateTime.UtcNow.AddYears(-60).Date.ToString())]
public DateTime? DOJ { get; set; }
但这会引发错误:属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式。
所以我修改了我的代码:
#region variables
public const string MaxDate = DateTime.UtcNow.ToString();
public const string MinDate = DateTime.UtcNow.AddYears(-60).Date.ToString();
#endregion
并设置属性:
[Range(typeof(DateTime),maximum:MaxDate,minimum:MinDate)]
public DateTime? DOJ { get; set; }
现在的错误是:分配给“MaxDate”的表达式必须是常量。
MinDate 也是如此。
解决办法是什么?
【问题讨论】:
标签: validation data-annotations