問題タブ [fluentvalidation]

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.

0 投票する
1 に答える
69936 参照

c# - FluentValidationを使用した条件付き検証

私が必要としているのは、他のフィールドが入力されているかどうかに応じて、フィールドを条件付きで検証する方法です。

元。関連するドロップダウンと日付フィールドがあります。どのフィールドも設定されていない場合、フォームは検証に合格する必要があります。ただし、2つのフィールドの一方が設定されていても、もう一方が設定されていない場合は、検証が実行され、もう一方のフィールドを設定する必要があります。

カスタム検証クラスを作成しましたが、単一のフィールドで検証されているようです。組み込みのバリデーターを使用して必要な検証を設定する方法はありますか?そうでない場合、カスタムバリデーターを使用して2つのフィールドを接続する良い方法はありますか?

0 投票する
1 に答える
966 参照

c# - 相互に依存する連鎖ルール

プロジェクトでFluent Validationを使用しています。
私のViewModelには、文字列型のプロパティがあります。有効な値は、正の整数を表す文字列のみです。
そこで、IntegerValidator文字列を整数に解析できるかどうかをチェックする単純なものを作成しました。これは機能します。
問題は、正の整数でなければならないというルールをどのように追加するかです。既存のGreater Than Validatorを使用したいのですが、それを文字列プロパティのルールにチェーンするとstring、 parsed ではなく として比較されintます。これを達成する方法は?

私がやりたいことのサンプル( に注意してくださいToInt()):

0 投票する
2 に答える
3618 参照

c# - Fluent Validation を使用した列挙型との比較は以上ですか?

わかりました、列挙型の値に基づいて条件付きでオブジェクトを検証しようとしているとしましょう。どうすればそれを行うことができますか?

オブジェクトを検証するサンプル呼び出しを次に示します。

Enum 値を持つクラスのサンプルを次に示します。

この特定の例では、「バリデーター 'FirstValidator' はタイプ 'MyEnum' のメンバーを検証できません - タイプに互換性がありません。」

いくつかの編集の後、私が望んでいることを行うためのラッパーを思いつきましたが、よりエレガントなソリューションを好みます。MyObjectValidator を置き換えました

そして、バリデータラッパーを追加しました

列挙値に基づいて多数のルールを条件付きで検証できるように、propertyvalidator ラッパーを提供することなく内部コンテキストを参照する方法はありますか?

0 投票する
5 に答える
7157 参照

asp.net-mvc - ASP.net MVC での流暢な検証 - データベースの検証

ASP.net MVC 3 プロジェクトで Fluent Validation フレームワークを使用しています。これまでのところ、すべての検証は非常に単純でした (文字列が空でないこと、特定の長さだけであることなど) ですが、データベースに何かが存在するかどうかを確認する必要があります。

  1. この場合、Fluent Validation を使用する必要がありますか?
  2. Fluent Validation を使用してデータベースの検証を行う必要がある場合、依存関係をどのように処理すればよいですか? バリデータ クラスは自動的に作成されます。データベースにクエリを実行するには、何らかの方法でリポジトリ インスタンスの 1 つを渡す必要があります。

私が検証しようとしているものの例は次のとおりです。

ページに、選択した項目のリストを含むドロップダウン リストがあります。新しいレコードを保存する前に、選択した項目が実際にデータベースに存在することを確認したいと考えています。

編集
Fluent Validation フレームワークでの通常の検証のコード例を次に示します。

コントローラ:

ご覧のとおり、私は Validator を自分で作成することはありません。これは、 の次の行により機能しますGlobal.asax

問題は、リポジトリを使用してデータベースとやり取りする必要があるバリデーターができたことですが、バリデーターを作成していないため、具体的な型をハードコーディングする以外に、その依存関係を渡す方法がわかりません。

0 投票する
1 に答える
1322 参照

asp.net-mvc-3 - FluentValidationを使用して、外部データに依存するいくつかのビジネスルールを効率的に検証するにはどうすればよいですか?

関連するエンティティとFormPartBに依存するオブジェクトのビジネスルールがいくつかあります。FluentValidationは初めてです。LicenseeFormPartA

私がやりたいことは(私が思うに):

  • 私の中で、エンティティとエンティティを1回FormPartBValidator取得してから、それらの関連オブジェクトの値を使用するための一連のルール(つまり述語)を設定します。LicenseeFormPartAMust()FormPartB

  • つまり、各ルール定義内で両方の外部エンティティを再度フェッチしたくありません。

私はいくつかの考えを持っていました:

(1)バリデーターのコンストラクターで、私のRuleFor定義の上にあるこれらのエンティティを取得し、それらのエンティティをプライベートフィールドとして保存します。

また

(2)Validate()の呼び出し内でこれらのエンティティを取得し、それらのエンティティをプライベートフィールドとして保存します。

でも

  • オプション(1)でFormPartBインスタンスにアクセスできないようです

  • オプション(2)では、Validate()が思ったように機能していないようです(つまり、のすべての検証で呼び出されないようFormPartBです)。

  • そして、「オブジェクトを取得してプライベートフィールドとして保存する」が正しい方法であるかどうかさえわかりません。

何かアドバイス?

0 投票する
1 に答える
402 参照

asp.net-mvc-3 - ステップごとの Fluentvalidator マルチステップ フォーム検証

複数のアクションで構成されるマルチステップ フォーム (JavaScript は使用できません) を持つ MVC アプリケーションがあります。私は流暢な検証設定を備えたフォームモデルを持っています。ただし、各ステップのすべての検証を検証します。現在のステップに属するプロパティのみを検証したいと思います。特定のプロパティのみを検証するように流暢なバリデーターに指示する方法はありますか?

0 投票する
2 に答える
2275 参照

c# - FluentValidation Rulefor( ...reading a COMBO)

MVC3 の C# FluentValidation Rulefor() を使用して Combo に値があるかどうかを確認する正しい方法は何ですか??

3つのコンボボックスの生年月日セットがあります

各コンボには「日」または「月」または「年」が表示され
、それぞれに関連リストがあります。

したがって、ユーザーが 0..31 のいずれかの値を選択したかどうかを確認したいと思います。

たとえば、DateOfBirthDay HTML 出力コンボは次のようになります。

ModelState.IsValid を実行すると、ユーザーがコンボ値に触れていないという事実が検出されず、インデックスが「0」のままになります。

ありがとうございます。

0 投票する
1 に答える
538 参照

c# - サービスレイヤーを配置する場所

フレームワークを使用してFluentValidationいます。そして現在、私はいくつかのバリデーターを持っています(エンティティごとに)。エンティティを別のアセンブリ(ProjectName.Domain)とバリデーターに保持しています。

リポジトリとコントローラーの間にメディエーターレイヤーを提示するサービスレイヤーについて読みました(http://www.asp.net/mvc/tutorials/older-versions/models-(data)/validating-with-a-service-layer -cs)。service layer同じアセンブリで保持しても大丈夫ですか?

私が理解している限り、サービスレイヤーの目的は、具体的な(または一般的な)リポジトリと対応するバリデーターを保持し、リポジトリアイテムの検証を行うことです。そのため、実装は異なる場合があります。私は正しいですか?

FluentValidation(またはフレームワークに依存しない)を使用してサービスレイヤーを正しい方法で作成する方法。または、基本エンティティをいくつかと統合することは許容されますかFluentValidation AbstractValidator class

ありがとう!

0 投票する
2 に答える
1600 参照

c# - FluentValidationバリデーターを基本エンティティクラスと統合する

AbstractValidator<T>基本エンティティクラス内で使用したい。

Validate()しかし、私のテストの1つは、メソッドがパラメーターとして受け入れることができなかったと言って失敗しnullます。

使用Visual Web Developerしていますが、現時点ではC# Developer Express、エラーをデバッグするためのコンソールアプリケーションを作成するためにインストールできません。それ以来、単体テスト内でデバッグする方法がわかりません。あるいは、説明があればいいのにと思います!

ありがとう!

0 投票する
4 に答える
1151 参照

c# - アプリケーション設計: NH セッション管理、汎用リポジトリ、ASP.NET MVC

を定義domain modelしたら、残りの作業を行う方法を理解したいと思います。


データ アクセス層

UnitOfWork私は以前に、独自の実装をコーディングする必要がないことを読んでいISessionました (それを行う方法について多くの情報を見つけました)。だから私はかなり混乱しています..私は次のようなリポジトリインターフェースを持っています:

具体的な実装には、次の 2 つのオプションがあります。

オプションA

ISessionFactoryコンストラクターを介して注入し、次のようなものを用意します。

オプション B

NHibernateHelperクラスを使用することです

どこNHibernateHelperですか

どのオプションが優先されますか?

なぜ(注射以外に)?

オプションを使用する場合A、構成はどこに配置しますISessionFactoryか?

ASP.NET MVCプロジェクトのどこかに配置する必要がありますか?どのように?

モンスターの質問を読んでくれてありがとう!ご指導よろしくお願いします!