質問の要約: 特定のモデルに対して流暢なバリデーターが解決されたときに、モデルの状態からエラーのリストをクリアすることは可能ですか? このように流暢な検証は、データ注釈モデル プロバイダーのデフォルトの動作を補完するのではなく、上書きしますか?
私はこのような流暢な検証を使用しています:
FluentValidationModelValidatorProvider.Configure(
_ =>
{
// This does not seem to work, or i am misunderstanding it?
_.AddImplicitRequiredValidator = false;
});
コンテナーに autofac を使用していますが、流暢な検証は実際にはまだコンテナーを使用していません。上記のように設定しています。
私はこのようなモデルを持っています:
[Validator(typeof(PartyModelValidator))]
public class PartyModel
{
バリデーターはこのように検証します...
public class PartyModelValidator : AbstractValidator<PartyModel>
{
/// <summary>
/// Initialises a new instance of the <see cref="PartyModelValidator"/> class.
/// </summary>
public PartyModelValidator()
{
this.RuleFor(_ => _.Client)
.SetValidator(new ClientValidator())
.When(_ => _.SelectedPartyTab == PartyType.Person);
this.RuleFor(_ => _.Organisation)
.SetValidator(new OrganisationValidator())
.When(_ => _.SelectedPartyTab == PartyType.Organisation);
[Required]
一部の個人オブジェクトと組織オブジェクトに属性があることを除いて、検証は正常に機能しています。
これらの[Required]
属性は検証エラーとして表示されます。オブジェクト全体が実際には null の場合でも、これらのエラーが発生します。
特定の流暢なバリデーターが上記のように構成されている場合、流暢な検証でデータ注釈プロパティを無視するにはどうすればよいですか? ビューの検証以外の目的で使用されるため、オブジェクトに注釈を付けたままにしますか?