1

我正在尝试使用 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

4

0 回答 0