我正在尝试使用 MVC Foolproof Validation 工具包来强制字段具有值,如果早期状态字段已达到某个值...
状态字段类型是具有定义int
值的 ENum。
public enum RequestStatusENum { New = 10,
Processing = 20,
Rejected = 30,
Withdrawn = 40,
Confirmed = 50,
Cancelling = 60,
Cancelled = 70 }
达到状态Confirmed
后,我需要确保该ConfirmationNumber
字段具有值
public RequestStatusENum Status { get; set; }
[Display(Name = "Confirmation Number")]
[RequiredIf("Status", Operator.EqualTo,
RequestStatusENum.Confirmed, ErrorMessage = "Confirmation Number required")]
public string ConfirmationNumber { get; set; }
使用上述设置,它可以正常工作并验证该字段是否有数据,但是,如果我更改为以下设置,则不会发生验证。
[RequiredIf("Status", Operator.GreaterThanOrEqualTo,
RequestStatusENum.Confirmed, ErrorMessage = "Confirmation Number required")]
或这个
[RequiredIf("Status", Operator.GreaterThanOrEqualTo,
(int)RequestStatusENum.Confirmed, ErrorMessage = "Confirmation Number required")]
我看过这个 SO question虽然它很相似,但这并不是一个明确的EqualsTo
比较,而不是一个GreaterThanOrEqualTo