問題タブ [ivalidatableobject]

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 投票する
0 に答える
166 参照

image - IValidatableObject を使用してアップロードされたファイルを検証する


こんにちは、みんな!

私はモデルの検証に少し慣れていないので、 IValidatableObject インターフェイスを使用して Articles オブジェクトとアップロードされたファイルを検証しようとしましたが、成功しませんでした。

この次のクラスは、Articles オブジェクトを正常に検証しますが、HttpPostedFileBase がどのように挿入されて検証できるかわかりません。これは、この方法を使用して達成することさえ可能ですか?

データを送信するために使用しているフォームには enctype = multipart/form-data 属性が含まれているため、投稿ファイルが認識されます。

これは、検証しようとしている完全なクラスです。これは本当に私を行き詰まらせました。どんな助けも非常に感謝しています。

0 投票する
3 に答える
2901 参照

validation - ASP.NET Web APIはIValidatableObjectをサポートしていますか?

IValidatableObjectを実装し、いくつかの検証属性も持つビューモデルがあります。ApiControllerでアクションを呼び出そうとすると、属性の検証のみが実行されます。ASP.NET Web APIはIValidatableObjectをサポートしていませんか?単一の属性では表現できない複雑な検証の代替手段は何ですか?

編集:どこかで、私は何かをいじくりまわしたに違いありません。検証は不思議なことに期待どおりに機能し始めました。IValidatableObjectはデフォルトで確実にサポートされているようです。

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

validation - IValidatableObjectは検証に合格しますが、StringLengthが無効です

エンティティかどうかを確認するいくつかのテストを含むテストクラスがありますIsValid。独自のカスタム検証から使用IValidatableObjectするようになりましたが、正しい検証手法に固執しています。

これは私のテストクラスです:

これは私の実体です:

ご覧のとおり、IsValidを呼び出すことでテストがテストされIsValidForPersistanceます。Validate最終的にはより多くの検証が行われます。

上記のテストはすべてこのメソッドを使用して合格しますが、以下のこのテストも合格しますが、合格しないはずです。

ここでPhoneは、無効な長さの文字列の独自の値を設定しています。StringLength注釈が最小および最大10文字に設定されているため、検証が失敗することを期待しています。

なぜこれが通過するのですか?

更新 カスタム検証に問題があり、変更を加えてコードを更新しました。privateプロパティに修飾子がないことについてのnemesvからの提案に加えて、Phone現在は機能しています。すべてのコードを動作するように更新しました。

0 投票する
3 に答える
1503 参照

asp.net-mvc-3 - 部分ビューでIValidatableObjectを使用する方法

子オブジェクトとして部分的なViewModelを持つViewModelの部分的なビューの一部を検証する方法を理解できないようです。これが私の最低レベルの部分です。これは常に他のフォームタグ内の部分的なビューとして消費されます。

そして、これがそれを含む「メイン」ViewModelです:

NewCustomerWithPaymentのビューについては、次のようになります。

また、部分ビューの「支払い」は常に別のHtml.Beginformタグ内にレンダリングされ、次のようになります。

私の問題は、「支払い」ビューモデルの検証を機能させることができないことです。部分ビューとしてレンダリングされるViewModelsでIValidatableObjectを使用した経験のある人は、チャイムを鳴らして、機能する検証パターンを教えてくれますか?必要に応じて、JavaScriptの検証なしで生活できます。

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

c# - IValidatableObjectを実装するときのValidationContextの目的は何ですか

私はIValidatableObject何度か実装しましたValidationContextが、Validate メソッドへの解析の目的が何であるかはわかりませんでした。私の典型的なIValidatableObject実装は次のようになります。

私が逃したもので、使用できたものはありvalidationContextますか?

編集: ASP.NET MVC を使用していますが、これはコントローラーではなくクラスに実装されています。

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

asp.net-mvc-3 - IValidatableObject が mvc 4 Web アプリで機能しない

だから私は、ユーザーとビジネス パートナーを登録している web アプリを持っています。

これは私のモデルがどのように見えるかです

問題は次のとおりです。フォームを送信すると、Validate in CompanyModel が呼び出され、Validate in RegistrationModel も呼び出されます。しかし、Validate in UserModel も呼び出されるようにしたい...

更新:最初の問題を解決しました:これらはアップグレード後のモデルです:)

これで、検証が正常に機能します。CompanyModel の Validate が 2 回実行される理由がわかりません??. なにか提案を?

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

session - IValidatableObject の Validate メソッドから User.Identity にアクセスするには?

IValidatableObject から継承する ViewModel があります。このモデルでは、カスタム検証を行う必要があり、Session 変数と User.Identity が必要です。この変数にアクセスする適切な方法が見つかりませんでした。ゲッタープロパティになる静的クラスについて何か考えましたが、それが有効な方法かどうかはわかりません。

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

asp.net-mvc - IValidatableObject と MemberName が一致しない @Html.BeginCollectionItem

Steven Sanderson による@Html.BeginCollectionItemヘルパーを使用しているときに、 IValidatableObjectインターフェイスを使用してサーバー側でコレクション項目を検証しようとしています。

ユーザーが 2 つの等しいアイテムを選択できないようにしたい。したがって、たとえば、ユーザーが話すイディオムのリストが与えられた場合、これらの値をポストバックできます。

実装は次のValidateようになります。

これの問題は、スティーブンのヘルパーが を使用し、次のように見えるためMemberName、 に渡された ("Idiom") が辞書にあるValidationResultものとは異なることです。MemberNameModelStateGuid

ご覧のとおりIdiom != [Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom

最良の場合、たとえば[Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiomとして渡す方法MemberNameが必要ですが、 からこの情報を取得する方法がわかりませんvalidationContext。とにかくこれは動的でなければなりません。

これを克服する方法を知っていますか?

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

c# - IValidatableObject コンテキスト

IValidatableObject/Validator を使用して mvc モデルを検証しています。だから私はこのようなものを持っています

したがって、親インスタンスでバリデーターを実行すると、「名前が必要です」のようなメッセージが表示されます。

私が望むのは「Child.Name is required」であるため、プロパティ名「Child」を含める必要があります。私はこれを行うことができますか?