1

MVC Foolproof Validation ツールキットを使用して、以前のステータス フィールドが特定の値に達した場合にフィールドに値を強制しようとしています...

Status フィールド タイプは、値が定義された ENumintです。

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の質問を見てきましたが、似ていますが、それは明示的なEqualsTo比較ではなく、GreaterThanOrEqualTo

4

0 に答える 0