問題タブ [validationattribute]
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-3 - ASP.NET MVC 3 IClientValidatable 属性 - パラメーター キャッシュのクリア
ASP.NET MVC 3 を使用しています。独自のカスタム検証属性を追加しました。
実装方法に注目してくださいIClientValidatable
。parameters1
これにより、設定が HTML 5 データ属性としてページのフィールドにレンダリングされます。
私が抱えている問題は、設定の値が変更される可能性があることですが、変更されるたびにデータ属性内の古い値がレンダリングされます。これはどこかにキャッシュされていると思います。とにかくキャッシュを削除する方法はありますか?
助けていただければ幸いです。ありがとう
c# - プロパティの値をモデルクラスの別のプロパティの値と比較するカスタム検証属性
プロパティの値をモデルクラス内の別のプロパティの値と比較するカスタム検証属性を作成したいと思います。たとえば、モデルクラスには次のようなものがあります。
そして、次のように使用するカスタム属性を作成したいと思います。
そこにどう行けますか?
asp.net-mvc - リソースに格納された文字列値のペアを使用した DataAnnotations.ValidationAttribute エラー メッセージのフィード
組み込みのリソース ジェネレーターで生成されたリソース ファイルに格納されている値のペアにValidationAttributes
アクセスしません。(新しい項目の追加 - リソース ファイル)ErrorMessages
.resx
VS2010
という名前のフォルダーResources
を追加し、新しいものを追加してResources File
それを呼び出しErrorResources
、リソースエディターで値のペアを追加しましたStringLengthError
-Too Long **。
次に、DataAnnotation.ValidationAttribute に次のように書きました。
using
を含めるステートメントを追加しましたErrorResources
。
しかし、実行すると、ValidationAttribute StringLength は完全に無効になります。
次のように、ErrorResources なしで使用する場合:
検証属性が復活します。
コードの他の部分で値のペアにアクセスしようとしErrorResources
ましたが、うまくいきました。ValidationAttributes で ErrorResources リソースを使用することができません。
asp.net-mvc-2 - ASP.NETMVCでのクロステーブル検証
DataAnnotationsとValidation属性を使用して検証を実行しています。ADO NETエンティティモデル、ドメインサービス、RIAサービス、Silverlightを使用しており、プロジェクトにはASP.NETのサーバー側があります。
クロステーブル検証を実行したいのですが、CustomValidationメソッドからエンティティテーブルにアクセスするにはどうすればよいですか。
例を挙げて説明しましょう。
データ内で同じ名前の2つの会社を避けたいとします。
(追加されたコメントへの応答方法がわからないため、質問を編集しています。実際に必要なものではあり ません。アプリケーションのサーバー側にあるカスタム検証方法のデータにアクセスしたいだけです。)
私は飾る:
その場合、CustomValidatorTypeは次のようになります。
前もって感謝します
よろしくお願いします
ラファエル
dependency-injection - ValidationAttribute の Autofac と DI
次の検証属性クラスがあります。
テストするために、Autofac を IOC として使用し、プロパティ インジェクションを使用しようとしています。次のようにテストを設定しました。
テスト中、リポジトリが解決されません。Autofac は初めてで、誰かが私を正しい方向に向けてくれることを願っています。
asp.net - asp.net mvc の動的仮想ビューでモデル検証/データ注釈を使用する方法
カスタム仮想パス プロバイダーを使用して動的仮想ビューを作成する方法に関する投稿をいくつか見つけました。投稿はこちら
しかし、その仮想ビューにデータ注釈を実装する方法を知りたいです。
または、仮想ビューで検証を行うための最良のパターンは何ですか?
編集 1: 実際、私の質問は不完全です。CMSのようなものを作りたいです。ビューは動的であり、その内容も同様です。しかし、それらは同じ ViewController 関数を呼び出します。検証を処理するための最良の方法は何ですか? 動的コンテンツに基づいてデータ注釈を生成することは可能ですか?
ありがとう。
asp.net-mvc - モデルで検証属性を継承しないようにする
他のカスタム コンタクト モデル クラスが継承するベース コンタクト モデルを使用しています。
基本連絡先モデルは、検証属性を使用してプロパティが必須であることを示しますが、場合によってはそれをオーバーライドまたは停止したい場合があります。これは可能になるでしょうか?
新しい検証属性NotRequiredを使用して true を返そうとしましたが、属性が積み上げられているように見えるため、Required と NotRequired が実行され、検証が失敗しています。
解決策を探していると(見つけることができませんでした)、関連のない属性に「継承された」プロパティがあることがわかりましたが、System.ComponentModel.DataAnnotationsのネイティブ検証属性にはこれがありません。
これは失われた原因ですか?継承の無効化をサポートする独自のバージョンを作成する必要がありますか? どんな助けでも大歓迎です。
asp.net-mvc-3 - 独自の検証属性を作成するメカニズムを理解していない
以前に属性を作成しましたが、IIは以前に検証属性を作成していません。私はそれがどのように一緒に機能するかについて真剣に混乱しています。私はこれを達成する方法についてオンラインでほとんどのチュートリアルを読みました。しかし、私は熟考するためにいくつかの質問を残されています。
特定のJquery変数が設定されている場合にのみリモート関数を呼び出すrequiredIf属性を書き込もうとしていることを覚えておいてください...これは偶然にもビューステートからプルされた変数です...私はその部分を作ることができたと思います私のビューモデルの。しかし、私は逸脱します
1)C#コードは少し混乱しています。私の属性は、ValidationAttribute、IClientValidatableクラス、およびインターフェイスをそれぞれ拡張する必要があることを知っています。しかし、私は、オーバーライドされたメソッドのそれぞれが何をすべきかについて少し混乱していますか?requiredIfを書き込もうとしていますが、これらのメソッドを上書きすると、この目標を達成するのにどのように役立ちますか?
2)変数がない場合は、リモート関数がフィールドの検証を試みないようにします。フォームにメッセージが表示されないようにします。チュートリアルの多くはそれを中心に展開しているようです。
3)この関数をビューに追加するためにjqueryで何をする必要があるかについて混乱しています...これを機能させるためにJQueryに何を追加する必要がありますか...余分なコーディングがたくさんあるようです同じことを同じことをするjquery関数を、同じ鉱石の少ないコーディングで単純に入力できたとき...それはサーバー側の検証も追加することを知っています。これは良いことです。それでも...
これが、この方程式のjquery側にあるものです...
これが私の属性です(これは基本的に、チュートリアルの場合に必要なものからカーボンコピーされたものです...もっとカスタマイズする必要があることはわかっていますが、すべての部分が何をしているのかがよくわかったら、それを行います...
更新:私が持っているものは単に機能していません
これが私のモデルのプロパティが上記の属性でどのように注釈されているかです
この検証のキーを設定しようとしていた私のビューの値は、次のように設定されています...
私はそれを私のページにそのように埋め込みます...
フォームを送信できません...これを試して機能させたと言った人は、コードを投稿していただけますか?
c# - 複雑なモデル/サブモデルの検証 (MVC) のための最良のアプローチ
問題
MVC 内でモデルの検証を行う方法はたくさんあり、このトピックに関するドキュメントもたくさんあります。ただし、同じタイプの「サブモデル」であるモデルのプロパティを検証するための最良のアプローチが何であるかはよくわかりません。
次のことに注意してください
TryUpdateModel/TryValidateModel
私はまだメソッドの利益を得たいです- これらの「サブモデル」にはそれぞれ、厳密に型指定されたビューがあります
MainModel
全体的な表示ビューをレンダリングする、クラスの厳密に型指定されたビューが 1 つあります。
少し混乱するかもしれませんが、明確にするためにいくつかのコードを挿入します。例として、次のクラスを取り上げます。
メインモデル:
一部のサブモデル:
メインモデルコントローラー:
このコードは今まですべて意味があると信じています (そうでない場合は修正してくださいTryValidateModel()
) ValidationAttribute
。
問題はここにあります。最適な場所はどこか、また、Edit メソッドを条件付きステートメントで埋めずに利用しながら、 andにさまざまな検証制約を設定するための最良かつ最も洗練された方法はどこにあるでしょうか。Prop1
Prop2
TryValidateModel()
ModelState.AddModelError()
通常、クラスに検証属性を含めることができますがSomeSubModel
、この場合は機能しません。プロパティごとに異なる制約があるためです。
他のオプションは、クラスにカスタム検証属性が存在する可能性があることですが、オブジェクトがビューに直接渡され、検証時にそのオブジェクトへの参照がないMainModel
ため、この場合も機能しません。SomeSubModel
MainModel
私が考えることができる唯一の残されたオプションは、各プロパティの ValidationModel ですが、これに対する最善のアプローチが何であるかはよくわかりません。
解決
@MrMindorの回答に基づいて、私が実装したソリューションを次に示します。
基本 ValidationModel クラス:
Prop1 の検証モデル
Prop2 の検証モデル
アクション
c# - DateTimeのMVC3ValidationAttribute?IsValid(...)でDateTime.Maxを返します
DateTimeのカスタムValidationAttributeを作成しようとしていますか?
しかし、それがヒットしたときIsValid(object value)
、値はすでにですDateTime.Max
私のコードで見ることができるものは何もこの値を設定していませんが、それは私がそれを検証するのに苦労していることを意味します。
私が望むルールは「NullまたはAfterToday」です。つまり、Null値がある場合は問題ありませんが、値がある場合は検証します。