ちょうどこの素晴らしいapiを使用し始めた、私は複数のDependentRules
の問題に直面しています。それはすでにRequired
エラーが発生した、私はこの複数の従属ルールFluentValidation
RuleFor(d => d.NotificationType).NotEmpty().WithMessage("Required");
When(d => d.NotificationType.ToUpper() == "EMAIL",() =>
{
RuleFor(d => d.NotificationEmail).EmailAddress().WithMessage("Invalid Email Address");
RuleFor(d => d.NotificationEmail).NotEmpty().WithMessage("Required");
});
When(d => d.NotificationType.ToUpper() == "SMS",() =>
{
RuleFor(d => d.NotificationContactNo).NotEmpty().WithMessage("Required");
});
のようなルールを持っていた。しかしNotificationType
がEmpty
あるとき、これは失敗します。今の場合、これらの他のルールは従属ルールであり、NotificationType
が空でない場合にのみ実行する必要があります。それが動作しているが、私は、このルールd.NotificationType).NotEmpty()
を繰り返しています
RuleFor(d => d.NotificationType).NotEmpty().WithMessage("Required").DependentRules(k =>
k.When(d => d.NotificationType.ToUpper() == "EMAIL",() =>
{
RuleFor(d => d.NotificationEmail).EmailAddress().WithMessage("Invalid Email Address");
RuleFor(d => d.NotificationEmail).NotEmpty().WithMessage("Required");
})
);
RuleFor(d => d.NotificationType).NotEmpty().WithMessage("Required").DependentRules(k =>
When(d => d.NotificationType.ToUpper() == "SMS",() =>
{
RuleFor(d => d.NotificationContactNo).NotEmpty().WithMessage("Required");
})
);
、私はこのような何か、Multiple Dependent Rules under one Rule
を達成したい。そのために私は、ルールを変更しました。
RuleFor(d => d.NotificationType).NotEmpty().WithMessage("Required").DependentRules(k =>
k.When(d => d.NotificationType.ToUpper() == "EMAIL",() =>
{
RuleFor(d => d.NotificationEmail).EmailAddress().WithMessage("Invalid Email Address");
RuleFor(d => d.NotificationEmail).NotEmpty().WithMessage("Required");
});
k.When(d => d.NotificationType.ToUpper() == "SMS",() =>
{
RuleFor(d => d.NotificationContactNo).NotEmpty().WithMessage("Required");
})
);
どのように私はこれを達成することができますか?
ような何かをすることによって私を助けました実行する必要のある他のルールが存在し、すべてのエラーをユーザーに示すように、この点の検証を行います。 –