1

MVC でのサーバー側および目立たないクライアント側の検証に Fluent Validation を使用しています。ビジネス ニーズに合わせて拡張する必要があり、デフォルトの DataAnnotations 検証で問題が発生しています。したがって、組み込みの DataAnnotations プロバイダーを完全に無効にし、この検証を行うために独自の Fluent Validation 拡張機能を使用したいだけです。

data-val-基本的に、数値や日付 (data-val-number、data-val-date、data-val-required) などの値の型の組み込みの控えめな属性のレンダリングを停止する必要があります。

私はもう試した:

ModelValidatorProviders.Providers.Clear();

そして、それは数値/日付属性を取り除くように見えますが、必要な属性はまだそこにあります.

私は試した:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

しかし、それは何もしないようです。たぶん、間違った場所/順序で持っていますか?

4

1 に答える 1

2

Fluent Validationでは、必要な属性を無効にするための独自のフラグがあり、を使用して構成する必要がありますFluentValidationModelValidatorProvider。次のコードは、デフォルトのタイプ属性と必須属性の両方を処理します。

//Don't use built-in type attributes (data-val-number, data-val-date)
ModelValidatorProviders.Providers.Clear();

FluentValidationModelValidatorProvider.Configure(
    provider =>
    {
        provider.ValidatorFactory = new UnityValidatorFactory(container);

        //Don't use built-in data-val-required
        provider.AddImplicitRequiredValidator = false;
    }
);
于 2012-08-15T13:37:06.530 に答える