我在名为 DateRange 的自定义验证属性中有以下代码:
private DateTime _minDate = DateTime.Today.AddYears(-100);
private DateTime _maxDate = DateTime.MaxValue;
// String representation of the Min Date (yyyy/MM/dd)
public string Min
{
get { return FormatDate(_minDate, DateTime.Today.AddYears(-100)); }
set { _minDate = value == "Today" ? DateTime.Today : ParseDate(value, DateTime.Today.AddYears(-100)); }
}
// String representation of the Max Date (yyyy/MM/dd)
public string Max
{
get { return FormatDate(_maxDate, DateTime.MaxValue); }
set { _maxDate = value == "Today" ? DateTime.Today : ParseDate(value, DateTime.MaxValue); }
}
然后我在实体模型的某些属性的元数据中写入这个属性,如下所示:
[DateRange(Max = "Today")]
public string SomeDateProperty { get; set; };
我在 Max 属性的 getter 上设置了断点。我第一次打开视图时,断点被激活并且 DateTime.Today 得到了。随后的视图刷新不会激活断点并获得旧值。我认为它是缓存验证属性。我的问题是:这是因为缓存吗?如果是,那么如何禁用它?提前致谢