我看到ValidateIsLesser和ValidateIsGreater属性。但是,如果我想要做一个ValidateIsLesserOrEqual和/或ValidateIsGreaterOrEqual。难道我只需要编写这些自定义属性,或者是有预建功能,为这个,我有一个很难找到?

[ValidateNonEmpty]
[ValidateDate]
[ValidateIsLesser(IsLesserValidationType.Date, "EndDate", "Start Date must be before End Date.")]
public DateTime StartDate { get; set; }

[ValidateNonEmpty]
[ValidateDate]
[ValidateIsGreater(IsGreaterValidationType.Date, "StartDate", "End Date must be after the Start Date.")]
public DateTime EndDate { get; set; }
有帮助吗?

解决方案

您可以使用 ValidateSelf 属性,并提供自己的验证为OrEqual比较:

[ValidateNonEmpty]
[ValidateDate]
public DateTime StartDate { get; set; }

[ValidateNonEmpty]
[ValidateDate]
public DateTime EndDate { get; set; }

[ValidateSelf]
public void ValidateDate(ErrorSummary errors)
{
    if (StartDate >= EndDate)
        errors.RegisterErrorMessage("StartDate", "Start date must be earlier than end date.");
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top