問題タブ [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.
asp.net-mvc-2 - DataAnnotationsからFluentValidationに移行
ここで、カスタムDataAnnotation属性とに基づく検証を使用しますDataAnnotationsModelValidatorProvider
。流暢な検証はより流暢ですか?:) DataAnnotationsを完全に置き換えることはできますか?
asp.net-mvc-2 - 流暢な検証を使用してビューモデルを検証する際の問題
流暢な検証を使用してビューモデルを検証しようとしています。ビューモデル オブジェクトを投稿すると、modelstate.isvalid は常に false を返します。投稿されたオブジェクトの値を確認すると、ドロップダウンに表示されるデータを取得するために使用されたプロパティも検証されています。これを解決する方法。私は間違った方法でそれをやっていますか、plsは助けてください。私は ASP.net MVC を初めて使用し、このプロジェクトで流暢な検証と流暢な NHibernate マッピングを使用しようとしています。
詳細は次のとおりです。
以下のようなドメイン モデル オブジェクトがあります。
以下のようにビューモデルを作成しました。
モデルバリデーターは以下のとおりです。
ビュー モデル バリデータは次のとおりです。
ビューは次のとおりです。
コントローラは以下のとおりです。
asp.net-mvc - ドメインオブジェクトの検証とビューモデルの検証
ASP.NET MVC 3を使用しており、FluentValidationを使用してビューモデルを検証しています。正しい方向に進んでいないのではないかと少し心配しています。私の知る限り、モデルの検証はドメインオブジェクトで実行する必要があります。MVCを使用すると、検証が必要な類似した複数のビューモデルが存在する可能性があります。ドメインオブジェクトのプロパティが複数のビューモデルで発生した場合はどうなりますか?これで、同じプロパティを2回検証しているので、同期していない可能性があります。したがって、Userドメインオブジェクトがある場合は、このオブジェクトの検証を行いたいと思います。UserAViewModelとUserBViewModelがある場合はどうなるので、実行する必要があるのは複数の検証です。
私のニュースクラスには、必須フィールドであるTitleというプロパティがあります。ビューモデルにはTitleプロパティもあり、AutoMapperを使用してNewsとNewsViewModelをマップします。したがって、この検証は2回行われます。ドメインモデルの検証はいつ行われ、ビューモデルの検証はいつ行われますか?
上記のシナリオは単なる例ですので、批判しないでください。
asp.net-mvc - FluentValidation を使用したプロパティの複数の検証
FluentValidation と ASP.NET MVC 3 を使用しています。
検証に関していくつか質問があります。
ビューモデルの設定を次のように検証しています。
これはどのように行う必要がありますか、それとも 1 つのステートメントに含める必要がありますか?
Title プロパティで 2 つの検証を行う必要があります。name は必須フィールドである必要があり、100 文字を超えることはできません。以下は、検証がトリガーされた後のソースです。
検証タイプごとに1つずつ、2つの異なるクラスを使用しています。どうしてこれなの?今、私のフォームは一貫していません。必要な別の入力フィールドがあり、これに使用されるクラスはinput-validation-errorで、その上はfield-validation-errorです。
クライアント側の検証を有効にするにはどうすればよいですか? web.config に次のコードを設定すると、クライアント側が自動的に有効になると言われました。
クライアント側の検証はトリガーされません。jQuery ライブラリを含める必要がありますか、それとも自動的に行われますか?
asp.net-mvc - ユーザー入力の検証とビジネスオブジェクトの検証の混乱
ユーザー入力の検証とビジネスオブジェクトの検証に頭を悩ませようとしています。Customerオブジェクトを操作しているとしましょう。次のプロパティがあります:CustomerId、FirstName、LastName。FirstNameとLastNameは必須であり、それらの長さは50文字を超えることはできません。
ASP.NET MVC 3を使用しています。FluentValidationも実験しています(ただし、この検証フレームワークである必要はありません)。
「顧客の作成」ビューを使用しているときに、ビューにCustomerViewModelを渡します。
CustomerViewModelValidatorで、上記のように検証に必要なルールを設定しました。これはすべて、ビューで正常に検証されます。今、私は質問があります。私のアプリケーションにはサービスレイヤーがあり、ここではすべてのアプリケーションロジックを適用したいと思います。新しい顧客を保存したいとします。次に、CustomerRepositoryのSaveメソッドを呼び出すCustomerServiceのSavecustomerメソッドがあります。
サービスレイヤーを利用する別のアプリケーション(上記のWebアプリ以外)がある可能性があります。つまり、Customerオブジェクトが作成された場合は、それを検証する必要があるということです。次の質問が発生します。
- FirstNameとLastNameを確認するために、CustomerServiceでもCustomerオブジェクトを検証する必要がありますか?
- Customerクラスを検証するために、新しいバリデータークラスを作成する方がよいでしょうか?それとも私はそれを共有する必要がありますか?
- CustomerIdも検証する必要がありますか?つまり、ゼロより大きくする必要がありますが、Idが0の新しい顧客をどのように有効にしますか?
誰かがこれについての洞察/記事を共有することができればそれはありがたいです。
いくつかのビジネスルールも追加したいのですが、これはどこにありますか?ビジネスルールをどこでどのように実装しますか?
asp.net-mvc - FluentValidationが長さで機能しない
FluentValidationをクライアント側の検証で正しく機能させようとしています。ASP.NETMVC3を使用しています。
必要なタイトルがあり、1〜100文字の長さである必要があります。そのため、タイトルを入力しているときに、ルールセットにないエラーメッセージが表示されます。これが私のルールセットです:
表示されるエラーメッセージは次のとおりです。
何が間違っているのかわかりません。これが私のglobal.asaxです。
c#-4.0 - 流暢な検証。検証クラスを継承する
Fluent Validator を使用しました。しかし、ルールの階層を作成する必要がある場合もあります。例えば:
UserValidation から RootValidation に検証ルールを継承したいと考えています。しかし、このコードは機能しませんでした:
FluentValidation を使用して検証クラスを継承するにはどうすればよいですか?
jquery - 流暢な検証。エラー: 目立たないクライアント検証ルールの検証タイプ名は一意である必要があります
エラーが発生しました:
目立たないクライアント検証ルールの検証タイプ名は一意である必要があります。次の検証タイプが複数回検出されました: 必須。次の検証タイプが複数回検出されました: 必須
サーバー検証を使用しました。そして、すべてうまくいきました。しかし今、私はクライアント側の検証を使用すると述べていますが、この問題が発生しました。
これは私の検証クラスのコードです:
しかし、1 つのバリデータを残すと、すべて正常に動作します。フィールドに対して複数の検証を行うにはどうすればよいですか。
c# - サービスとしてのFluentValidation
いくつかのエンティティを検証するためにFluentValidation2を使用しています。IValidationService
他のサービスに渡して検証を実行できるようにするものを作成したいと思います。私はそれをこのように公開したいと思います:
ValidationError
検証エラーをカプセル化するクラスはどこにありますか。理想的には、特定のバリデーターを自分のサービスの1つ(など)に公開する必要はありませんOrderValidator
。検証サービスが正しいバリデーターを構築/検索できるようにしたいと思います。FVには、特定のタイプのバリデーターを見つけるための何かが組み込まれていますか(そしてそれは内部的にキャッシュされます)?または、IValidatorFactory
ルートに移動してから、各バリデーターをIoCコンテナーに配線する必要がありますか?
c# - 検証メッセージに、プロパティ名の代わりに「{PropertyName}」が含まれています
私は、クライアント側の控えめな検証で流暢な検証を使用します。
流暢な検証ルール:
そして、次のようなエラーメッセージが表示されました:' {PropertyName} 'は空であってはなりません。
生成されたhtml:
なぜMVCはPropertyName の実際のフィールド名を置き換えないのですか?