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