1
后,在我的ASP.NET MVC应用程序,我用流利的验证来验证我的models.Please看看我的模型:假流利的验证错误消失IIS重新启动
[Table("INWARDDOCUMENTS")]
public class InwardDocument{
.......................
[Column("DOCDATE")]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}"),Display(Name="Document date")]
public DateTime? DocDate { get; set; }
........................
}
而这里的一口流利的验证部分:
RuleFor(doc => doc.InwardDocument.DocDate.Value.Date).LessThanOrEqualTo(DateTime.Now.Date).When(x=>x.InwardDocument.DocDate!=null).WithMessage("Document date cannot be greater than the current date");
总的来说,它工作正常,但平均每3周我会得到这个验证错误,虽然模型值是正确输入的。如您所见,如果输入日期,我会将模型的日期部分与今天的日期部分进行比较。所以不需要几小时或几分钟的时间。我在调试模式下输入相同的信息,并且不会收到此验证错误。唯一的治疗方法是重新启动IIS。这足以让问题消失。任何想法为什么?
是的实例化是单例。但我很好奇的是,如果缓存是原因,那么不应该每天都这样做,因为今天缓存的日期明天已经过时了。而当你说你会建议不''直接在验证器中引用DateTime.Now时,你建议我在哪里做? –
当我说不直接引用DateTime.Now时,我的意思是使用一个func来引用它,如示例中所示。 –