問題タブ [validation-application-bl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - ASP.NETMVC検証をエンタープライズライブラリ検証と統合する
モデルにEnterpriseLibrary5 Validation(WCFメソッドでも使用されています)を既に使用しているため、DataAnnotationsを使用したASP.NET4MVCの冗長なバリデーターを避けたいと思いました。
しかし、エンタープライズライブラリバリデーターはMVCによって自動的に取得されないようです。
MVC DataAnnotationsを使用する場合:
HTMLにはdata-val-regex-patternが含まれており、フィールドはクライアント側で検証されています。
しかし、既存のELベースの検証を使用する場合:
クライアント側では検証エラーは表示されず、生成されたHTMLには検証属性がありません。
ここで何が欠けていますか?MVCにクライアント側とサーバー側の両方で既存のELバリデーターを使用させるにはどうすればよいですか?
解決策:
DataAnnotationsに完全に移行するソリューションを受け入れました。これは最も簡単な方法であり、EntLib5とMVC4の両方で正常に機能します。ただし、ValidationFactoryには少し問題があります。CreateValidatorFromAttributesをCreateValidatorと特定のフラグに置き換える必要がありました。DataAnnotationsがValidationFactoryとどのように連携するかについては、次の記事を参照してください。
CreateValidatorFromAttributesはDataAnnotations属性を使用しません
また、DataAnnotationsには[Required]属性があり、空の文字列とスペースのみを含む文字列を適切に処理します。それでVABにいくつかの問題がありました。
c# - Enterprise Validation 親子クラスの異なるルールセットをブロックする
親と子に 2 つの異なるルールセットがある場合、子クラスのプロパティの検証が機能しません。
これはクラス コードです。Mytype は親で、Person は子です。
これは、すべてのルールセットに対して MyType クラスを検証するためのカスタム バリデータ クラスです。
そして、これは失敗するテストです: (IsValid は False に設定する必要がありますが、True です)
助けてくださいませんか?
c# - インターフェイスごとにカスタムバリデーターを適用する
私がインターフェースを持っているとしましょう:
そして、それを実装するクラスがいくつかあります。すなわち
そして、次のようなカスタムバリデーターにこのインターフェイスのプロパティの検証ロジックがあります。
そして、ISomeInterfaceを装飾するこのバリデーターを適用するための属性があります。
Validation.Validateを呼び出すと、SomeInterfaceValidatorで検証が実行されていないようです。ClassAに固有の検証を行いますが、インターフェイスISomeInterfaceの検証は行いません。
これを機能させるにはどうすればよいですか?
編集: これを機能させる1つの方法を見つけました。それは、SelfValidationを実行することです。ここで、ISomeInterfaceにキャストし、そのように検証します。これで十分ですが、これを達成する他の方法があるかどうかを確認するために、質問を開いたままにしておきます。
enterprise-library - 検証アプリケーション ブロック - カスタム バリデーター - メッセージ テンプレート
Enterprise Library 4.1 Validation Application Block を使用しています。カスタム バリデータを作成し、DefaultMessageTemplate プロパティをオーバーライドしました。私のDoValidateメソッドのロジックは以下の通りです
LogValidationResult(validationResults, String.Format(DefaultMessageTemplate, currentTarget, key), currentTarget, key)
ただし、構成ツールでこのバリデーターのカスタム MessageTemplate を指定すると、DefaultMessageTemplate テキストのみが表示されます。カスタムバリデーターのカスタムメッセージでデフォルトメッセージをオーバーライドするにはどうすればよいですか?
助けていただければ幸いです。
ありがとう!
validation - Enterprise Library Validation Application Block を使用して生年月日で年齢を検証する
次のような状況があります: プロパティ BithDay を持つドメイン モデル。年齢 (誕生日に応じて計算されます) が 150 歳未満であることを確認できるようにしたいと考えています。組み込みのバリデーターを使用してそれを行うことはできますか?それとも自分でビルドする必要がありますか? DomainValidator の例を教えてもらえますか?
c# - Enterprise Library Validation アプリケーション ブロックは、オブジェクトを階層内の相対オブジェクトに検証します
私は一種の階層クラスを持っています。つまり、ユーザー定義オブジェクトのコレクションが含まれています。子レベルで検証を適用できるようにしたいのですが、親レベルでいくつかのプロパティを参照します。Validation Application Block のビルドインバリデーターでこれを行う方法はありますか? そうでない場合は、そのようなバリデーターの一般的な例を本当に高く評価します。
アップデート
少し例を挙げると、問題を理解するのに役立つかもしれないと思いました。だからここにあります:
今私の問題は、グループの登録日にage
aを計算して検証したいということです。person
これは、これよりも少し複雑なシナリオがあるため、単なる例です。それを検証する最良の方法は何ですか?