問題タブ [model-validation]

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

asp.net-mvc - Entity Framework のメタデータ クラスの自動生成

MVC アプリケーションで Entity Framework クラスの検証に xVal を使用することを検討しています。これには、Graham O'Neale ( http://goneale.com/2009/03/04/using-metadatatype-attribute-with-aspnet-mvc-xval-validation-framework ) によって詳細に説明されているメタデータ クラスの作成が含まれます。

SQL データベースのメタデータを使用してそのようなメタデータ クラスを自動生成する方法があるかどうか疑問に思っています (たとえば、null 以外のフィールドには [Required] クラス属性が含まれます。

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

ruby-on-rails - Rails とモデルの検証

次の表にモデル レベルの検証を行います。

これは、(これまでのところ)次のように見える私のモデルを意味しますか?

もっている

また

?

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

asp.net-mvc-2 - Asp.netMVC2RTMの列挙可能なプロパティを使用したモデル検証

DataAnnotationsモデルオブジェクトを検証するために属性を使用しています。私のモデルクラスは次のようになります。

私のコントローラーアクションは次のようになります。

ユーザーには、次のフォームを持つビューが表示されます。

  • ユーザーがユーザーの名前を入力するダミー名のテキストボックス。入力するユーザーごとに、入力するユーザーごとにを作成するajaxと組み合わせたクライアントスクリプトがあります<input type="hidden" name="Editors[0].Id" value="userId" />(したがって、列挙インデックスはここに記述されているように常に0であるとは限りません)。したがって、デフォルトのモデルバインダーは、問題なくフォームを使用してバインドできます。
  • ユーザーがタイトルを入力するテキストボックス

入力検証の代わりにモデル検証を行うAsp.netMVC2 RTMを使用しているため、検証エラーを回避する方法がわかりません。また、ユーザーが提供するため、オブジェクトインスタンスUser.Id全体が検証されます。User他のプロパティの検証を除外する方法を知っている限り、これは気になりません。

BindAttribute問題は、コントローラーアクションで使用する必要があるということです。プロパティの白または黒のリストを提供する必要があります。ホワイトリストを提供することは常により良い習慣です。また、将来性もあります。

問題

FullNameフォームは正常に機能しますが、提供されていないため、ユーザーとEmailプロパティに関する検証エラーが発生します。また、電子メールは個人の連絡先データであり、ユーザー間で共有されないため、(ユーザーがユーザーデータを入力するときにajaxを介して)クライアントにフィードするべきではありません。

にユーザー参照が1つしかない場合は、次のMyModelように記述します。

しかし、私はそれらの列挙を持っています。モデルを操作するためのホワイトリストを提供するにはどうすればよいですか?Bind

1つの可能な解決策

UserMyModelオブジェクトを入力するためだけに、別のビューモデルを作成できます。実際の検証属性を配置し、不要なプロパティを省略します。

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

asp.net-mvc - カスタム入力モデルを使用して ASP.NET Mvc コントローラーを単体テスト (xUnit) しますか?

非常に単純なシナリオであると予想されるものに関する情報を見つけるのに苦労しています。DataAnnotions を使用したカスタム入力モデルを使用する ASP.NET Mvc 2 コントローラーでアクションを単体テストしようとしています。タイトルにあるように、私のテスト フレームワークは xUnit です。

これが私のカスタム入力モデルです:

そして、これが私のコントローラーです(この例のために単純化するためにいくつかのロジックを取り出しました):

そして、これが私のxUnit Factです(これも簡略化されています):

テストを実行すると、コントローラーの結果 (Act セクション) を取得しようとすると、テスト ファクトに次のエラーが表示されます。

あなたが提供できる助けを前もってありがとう!

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

c# - DataAnnotations に関する ValidateModel の問題

これらのプロパティを持つ SearchViewModel があります。

ご覧のとおり、現時点で SortField の有効な値は "name" だけにし、SortDirection の有効な値は "asc" または "desc" だけにします。

ただし、値が異なる場合、ValidateModel はエラーをキャッチせず、ModelState.IsValid は true を返します。基本的に、私は任意の値を提供でき、それは常に通過します。

省略されたコントローラ メソッド:

私は何を間違っていますか?

編集:これが重要かどうかはわかりませんが、カスタム ModelBinder を使用しています。

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

c# - モデルで特定の属性が有効であったかどうかを検出する

System.ComponentModel.DataAnnotations.ValidationAttribute から派生する独自の検証属性を作成したので、その特定の属性がモデルで有効かどうかをコントローラーから検出できるようにしたいと考えています。

私のセットアップ:

では、CustomValidationAttribute の検証が成功したかどうかをコントローラーから検出するにはどうすればよいでしょうか。

ModelState で ModelError の Exception プロパティを見てきましたが、CustomValidationAttribute からそれにカスタム例外を追加する方法がありません。

今、私は ModelState で特定のエラー メッセージを確認することに頼っています。

CustomValidationAttribute を次のように変更しました。

文字列の一致に頼るのは好きではありません。このように、ErrorMessage プロパティは悪用されています。

私のオプションは何ですか?

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

asp.net-mvc - フィールドを必須としてマークする

たとえば、CompanyName; の単一のプロパティを持つ Customer クラスを含む dbml ファイルがあるとします。

さて、上記が dbml にあり、このように生成されていることを考えると、疫病のように編集することは明らかに避けるべきです。

だから私はそのような別のクラスを作成しました;

理由は自分のフィールドを必要に応じて飾りたいからです。

ただし、「... 'CustomerID' の定義が既に含まれています」というコンパイル エラーが発生するため、これは機能しません。

誰かがこれを回避する方法を知っていますか、またはフィールドを必須としてマークするか、モデルを検証するためのより良い方法はありますか?

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

asp.net-mvc - サブオブジェクトでのASP.NETMVC2モデル検証(DataAnnotations)

ASP.NET MVC 2モデルの検証にはサブオブジェクトが含まれていますか?

このクラスのインスタンス「Filter」があります。

私の主な目的で:

ただし、TryValidateModel(mainObject)を実行すると、MainObject.Filter.Textの「Text」が5文字より長くても、検証は機能します。

これは意図されたものですか、それとも私は何か間違ったことをしていますか?

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

asp.net - ASP.NET MVC 2.0 カスタム クライアントの検証

少なくとも 2 つの項目が選択されていることを確認するバリデーターを作成しようとしています。バリデータはサーバー側で正しく動作しますが、クライアント側のコードは実行されません。

コードは次のとおりです。

そして、ここにバリデータコードがあります:

global.asax ファイルに検証アダプターを登録しました。

バリデーターは、テキストボックスなどの値プロパティを持つ要素でのみ機能すると考えています。

更新 1:

EnableClientValidation が正しく呼び出され、必要なすべての JS ファイルがプロジェクトに含まれています。onblur をコンテキストにアタッチする必要があるようです。私はそれを試して、結果を投稿します。

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

asp.net-mvc - IEnumerable で Html.CheckBox (リスト) を使用する方法検証あり

ユーザーがいくつかの情報を入力し、最終的にチェックボックスで 1 人以上の顧客を選択する必要があるページに取り組んでいます。

顧客のリストはIEnumerable<Customer>、モデルに渡す です。を使用してチェックボックスのリストを作成するにはどうすればよい.CheckBoxFor()ですか?

最後に、少なくとも 1 つのチェックボックスが選択されているかどうかを検証できるようにしたいと考えています。

Request は、ユーザーが入力した情報を保持するオブジェクトです。

誰かが私を正しい方向に向けることができますか? それとも、私はこれについてすべて間違っていますか?