問題タブ [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.
image - IValidatableObject を使用してアップロードされたファイルを検証する
こんにちは、みんな!
私はモデルの検証に少し慣れていないので、 IValidatableObject インターフェイスを使用して Articles オブジェクトとアップロードされたファイルを検証しようとしましたが、成功しませんでした。
この次のクラスは、Articles オブジェクトを正常に検証しますが、HttpPostedFileBase がどのように挿入されて検証できるかわかりません。これは、この方法を使用して達成することさえ可能ですか?
データを送信するために使用しているフォームには enctype = multipart/form-data 属性が含まれているため、投稿ファイルが認識されます。
これは、検証しようとしている完全なクラスです。これは本当に私を行き詰まらせました。どんな助けも非常に感謝しています。
validation - ASP.NET Web APIはIValidatableObjectをサポートしていますか?
IValidatableObjectを実装し、いくつかの検証属性も持つビューモデルがあります。ApiControllerでアクションを呼び出そうとすると、属性の検証のみが実行されます。ASP.NET Web APIはIValidatableObjectをサポートしていませんか?単一の属性では表現できない複雑な検証の代替手段は何ですか?
編集:どこかで、私は何かをいじくりまわしたに違いありません。検証は不思議なことに期待どおりに機能し始めました。IValidatableObjectはデフォルトで確実にサポートされているようです。
validation - IValidatableObjectは検証に合格しますが、StringLengthが無効です
エンティティかどうかを確認するいくつかのテストを含むテストクラスがありますIsValid
。独自のカスタム検証から使用IValidatableObject
するようになりましたが、正しい検証手法に固執しています。
これは私のテストクラスです:
これは私の実体です:
ご覧のとおり、IsValid
を呼び出すことでテストがテストされIsValidForPersistance
ます。Validate
最終的にはより多くの検証が行われます。
上記のテストはすべてこのメソッドを使用して合格しますが、以下のこのテストも合格しますが、合格しないはずです。
ここでPhone
は、無効な長さの文字列の独自の値を設定しています。StringLength
注釈が最小および最大10文字に設定されているため、検証が失敗することを期待しています。
なぜこれが通過するのですか?
更新
カスタム検証に問題があり、変更を加えてコードを更新しました。private
プロパティに修飾子がないことについてのnemesvからの提案に加えて、Phone
現在は機能しています。すべてのコードを動作するように更新しました。
asp.net-mvc-3 - 部分ビューでIValidatableObjectを使用する方法
子オブジェクトとして部分的なViewModelを持つViewModelの部分的なビューの一部を検証する方法を理解できないようです。これが私の最低レベルの部分です。これは常に他のフォームタグ内の部分的なビューとして消費されます。
そして、これがそれを含む「メイン」ViewModelです:
NewCustomerWithPaymentのビューについては、次のようになります。
また、部分ビューの「支払い」は常に別のHtml.Beginformタグ内にレンダリングされ、次のようになります。
私の問題は、「支払い」ビューモデルの検証を機能させることができないことです。部分ビューとしてレンダリングされるViewModelsでIValidatableObjectを使用した経験のある人は、チャイムを鳴らして、機能する検証パターンを教えてくれますか?必要に応じて、JavaScriptの検証なしで生活できます。
c# - IValidatableObjectを実装するときのValidationContextの目的は何ですか
私はIValidatableObject
何度か実装しましたValidationContext
が、Validate メソッドへの解析の目的が何であるかはわかりませんでした。私の典型的なIValidatableObject
実装は次のようになります。
私が逃したもので、使用できたものはありvalidationContext
ますか?
編集: ASP.NET MVC を使用していますが、これはコントローラーではなくクラスに実装されています。
asp.net-mvc-3 - IValidatableObject が mvc 4 Web アプリで機能しない
だから私は、ユーザーとビジネス パートナーを登録している web アプリを持っています。
これは私のモデルがどのように見えるかです
問題は次のとおりです。フォームを送信すると、Validate in CompanyModel が呼び出され、Validate in RegistrationModel も呼び出されます。しかし、Validate in UserModel も呼び出されるようにしたい...
更新:最初の問題を解決しました:これらはアップグレード後のモデルです:)
これで、検証が正常に機能します。CompanyModel の Validate が 2 回実行される理由がわかりません??. なにか提案を?
session - IValidatableObject の Validate メソッドから User.Identity にアクセスするには?
IValidatableObject から継承する ViewModel があります。このモデルでは、カスタム検証を行う必要があり、Session 変数と User.Identity が必要です。この変数にアクセスする適切な方法が見つかりませんでした。ゲッタープロパティになる静的クラスについて何か考えましたが、それが有効な方法かどうかはわかりません。
asp.net-mvc - IValidatableObject と MemberName が一致しない @Html.BeginCollectionItem
Steven Sanderson による@Html.BeginCollectionItemヘルパーを使用しているときに、 IValidatableObjectインターフェイスを使用してサーバー側でコレクション項目を検証しようとしています。
ユーザーが 2 つの等しいアイテムを選択できないようにしたい。したがって、たとえば、ユーザーが話すイディオムのリストが与えられた場合、これらの値をポストバックできます。
実装は次のValidate
ようになります。
これの問題は、スティーブンのヘルパーが を使用し、次のように見えるためMemberName
、 に渡された ("Idiom") が辞書にあるValidationResult
ものとは異なることです。MemberName
ModelState
Guid
ご覧のとおりIdiom != [Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom
。
最良の場合、たとえば[Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom
として渡す方法MemberName
が必要ですが、 からこの情報を取得する方法がわかりませんvalidationContext
。とにかくこれは動的でなければなりません。
これを克服する方法を知っていますか?
c# - IValidatableObject コンテキスト
IValidatableObject/Validator を使用して mvc モデルを検証しています。だから私はこのようなものを持っています
したがって、親インスタンスでバリデーターを実行すると、「名前が必要です」のようなメッセージが表示されます。
私が望むのは「Child.Name is required」であるため、プロパティ名「Child」を含める必要があります。私はこれを行うことができますか?