【发布时间】:2013-05-25 06:45:26
【问题描述】:
我有一个布尔值和一个可为空的 DateTime 属性。 仅当 bool 设置为 true 时才需要 DateTime... 如果布尔为真,我想验证日期。
到目前为止我有这个表达......
When(p => p.HasVisa == true, () => RuleFor(p => p.VisaExpiryDate).NotNull());
现在我尝试使用 .Must 扩展名和我的自定义 BeAValidDate 方法验证该表达式中的日期...
When(p => p.HasVisa == true, () => RuleFor(p => p.VisaExpiryDate).NotNull().Must(BeAValidDate));
private bool BeAValidDate(DateTime date)
{
if (date == default(DateTime))
return false;
return true;
}
但 .Must 扩展名不允许我对可为空的 DateTime 进行操作。 如何在可为空的日期进行此类验证?
谢谢
【问题讨论】:
-
我从来没有使用过 FluentValidation,但你的问题不就是你的
BeAValidDate没有将DateTime?(即可以为空的日期时间)作为参数吗? -
哈哈,谢谢 Joachim,我想太多了,是的,你是对的。