問題タブ [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 投票する
1 に答える
679 参照

jquery - MVC 4 JQuery を使用せずにチェックボックスを検証する

現在、支払いフォームの利用規約のチェックボックスを検証しようとしています。これにより、利用規約のチェックボックスがオンになるまでフォームが送信されません。

私が作成している特定のフォームは、IE6 を使用するクライアントのグループによってのみ使用されます (したがって、JQuery を使用して検証することはできません)。

利用規約の bool モデル値を必要なデータ注釈で装飾しましたが、必要なエラー メッセージは表示されません (string、decimal、int などを使用する他の値とは異なります。

このコードを使用してエラーを表示することができました:

このコードは、コントローラーの HttpPost インデックス ActionResult にあります。次に、ビューで次のようにレンダリングします。

このcpdeを使用する際の問題は、他のすべてのフィールドが正しい場合にのみ表示されることです.JQueryを使用せずに、送信ボタンをクリックした直後に表示される他のエラーメッセージとともにこのエラーメッセージを表示することは可能ですか?

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

asp.net-mvc-3 - DropDownListsを使用して、モデル値を制約および選択します

私は顧客のためのモデルを持っています

public ActionResult Create(Customer customer)のアクションである顧客作成フォームを投稿すると、CustomerControllerに対してエラーが発生しModelStateます。たとえば...私のコードが以下のような場合。

私のMVCビューでは、顧客タイトルにエラーが表示されます

たとえば、if (ModelState.IsValid)上記のコードからその部分を削除すると、顧客エンティティは正常に保存され、データベースにレコードを表示できます。

ここでの問題は何でしょうか?

編集 :

顧客タイトルを次のように渡すIEnumerable<SelectListItem>

ビュー内のコード

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

asp.net-mvc-4 - ASP .NET MVC 4ビューには、それぞれにフォームを持つ2つの部分的なビューが含まれています

MVC 4アプリケーションには、インデックスビューがあります。このビューには、部分ビューがレンダリングされる2つのdivタグがあります。クリックすると、jQueryを使用してこれら2つのdivを切り替える2つのボタンがあります。部分ビューは、それぞれのモデルで強く型付けされます。

質問:

モデルを部分ビューに渡すにはどうすればよいですか?パーシャルビューからのPOSTリクエストを処理するにはどうすればよいですか?POSTアクションメソッドでModelStateが無効な場合、ModelStaeを認識しているビューを再レンダリングするにはどうすればよいですか?

部分ビューはこのシナリオで進む方法ですか?MVC 4でこれを達成するためのより良い方法はありますか?

どんな助けでも大歓迎です。

これが私が成功せずに試したことです:

Index.cshtml

試してみましHTML.RenderPartial("_partial")たが、部分ビューのベースとなるモデルを指定できませんでした。次に、試してみましHtml.RenderAction("TokenBased")たが、このアクションでは、このビューのモデルのインスタンスを含む部分ビューが返されます。

CredentialController.cs

そして、ここに部分的なビューがあります:

TokenPartial.cshtml

そして、これがPOSTアクションメソッドです。

インデックスアクションメソッドがモデルインスタンスを渡すようにレンダリングする「通常の」場合のように、コントローラーアクションメソッド、インデックスビュー、および部分ビューの間の相互作用を処理する方法。次に、インデックスPOSTアクションメソッドで検証が失敗した場合、インデックスビューを呼び出してフォームを再表示し、無効なモデルを渡します。

ありがとうございました

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

django - モデルフォームの検証が機能していません...理由がわかりません

model.py

フォーム.py

入力なしでフォームを保存しようとすると、デフォルトの「このフィールドは必須です」というエラーが表示されるので、ビューが正しいことがわかります。問題は、姓フィールドの検証がまったく機能せず、理解できないことです。ここで何が間違っていますか。なぜうまくいかないのですか?これはイライラします

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

asp.net-mvc - ゲッターとセッターで例外をスローする

ゲッターとセッターの使用に関しては、モデルの検証のベスト プラクティスは何だろうと思っていました。具体的には、モデルに null 許容フィールドがあり、一部のユース ケースでは、アクセス時に null 値を持つべきではありません。そのような場合、ゲッターから例外をスローしたいのですが、それは受け入れられている慣習ですか?

これは、setter で無効な値を受け取った場合にも当てはまります。

例外をスローする代わりに、フィールドを装飾するために使用できる MVC 属性を認識していますが、モデルの検証にはあまり使用していません。「この値はゲッターで null であってはなりません」というシナリオでは、使用できる適切な属性はありますか?

また、ゲッターとセッターで例外をスローすることが受け入れられる場合、スローする推奨される例外、つまり ValueNotValidException はありますか (それが実際の場合)?

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

asp.net-mvc - モデルが無効です

登録フォームを作成しています。私は、国民識別番号であるプロパティを持っています。しかし、ユーザーが登録を確認した後に記入してほしい。それなら登録用紙には書きません。

コメント:

そして、これは私の財産です:

しかし、これはうまくいきません。その理由は、属性[IdentityNumber][Required]. それらにコメントすると、

ModelState.IsValidですfalse。それらのコメントを外すと、true が返されます。では、それを許可するにはどこを変更する必要がありますか? つまり、登録後にユーザーにID番号を書いてもらいたいのです。

私のデータベースでは、ID 国民番号フィールドで null も許可されています。

編集:これが私の属性コードです:

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

c# - asp.net mvc 3で複数のモデルを検証するには?

次のような単純なモデルがあります。

SampleModel次のようになります (チェックボックスの入力をシミュレートするために作成されます):

私の見解では、私は実装しました:

そしてコントローラー側HomeController

問題:

送信を押すpublic ActionResult Page( AppointmentModel model )と、モデルが提供され、彼はSampleModelListnullを持っています。常にnullです。モデルからそのリストにチェック済みの入力を入れたいのですが、部分的なビューのために機能していない可能性があります。

私の場合、2 つのモデルを検証する方法は? または、私の場合の最善のアプローチは何ですか、おそらく私のアプローチは良くありません。

助けてください :)

アップデート:

SamplePartialView内容:

そしてテンプレート:

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

asp.net-mvc - ASP.NET MVC モデル検証エラーのローカリゼーション コンテキスト

まず第一に、データ注釈ベースのモデル検証が ASP.NET MVC4 でどのように機能するかを理解し、それを .NET で正常に実装したと言わざるを得ませんDataAnnotationsModelValidatorProvider。そのため、セットアップの支援は必要ありません。

しかし、 になるHtmlHelpersと、エラー メッセージのコンテキストを把握するのに苦労しています。と言うcontextのは、どのエラーについて話しているかを意味します。エラーを返した属性はどれですか?

私が得ることができるのはKey、エラーと現在ErrorMessageのものですが、プログラム的には、私が話しているエラーを伝えるものは何もありません。それがRequired属性であろうと他の属性であろうと、それらを区別する方法を見つける方法はありません。

シナリオを少し開いてみましょう。要素HtmlHelpersをレンダリングするカスタムがあります。ContentEditableたとえばHtml.ContentEditableValidationMessageFor(m => m.firstName);。次のような出力が得られます。

現在、contenteditable要素の変更を処理して永続化するための jQuery プラグインがあり、それらをバックエンドに永続化します。ただし、UI には、どのエラー メッセージについて話しているかを示すものは何もありません。人間はそれが であることを簡単に確認できますが、プログラム的には、たとえばRequiredAttributeいくつかのものと区別するためのデータがありません。MinLengthAttribute

このシナリオでは、単純に をdata-valmsg-for="firstName"ローカライズのキーとして使用すると、同じプロパティに関するすべてのエラーに対して同じエラー メッセージが返されます。

丸めるには

ModelStateModelError の一意の ID を発行するためのベスト プラクティスはありますか? ASP.NET MVC4 とDataAnnotationsModelValidatorProvider.

ModelState「一緒にハックする」方法はたくさん考えられますが、MVC が提供するものは何でも使用したいと思います。すべてが custom を書くことに帰着するならModelValidatorProvider、私はそれに対してすべてオープンです。それが最良かつ最も持続可能な方法である限り。私はすべて、今すぐハッキングし、機能し続けるために永遠にハッキングするよりも、今より多くのことを行い、後で行うことを支持します

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

regex - ModelState.IsValid は、MVC 4 の RegularExpression ValidationAttribute に対して常に false です。

私のクラスでは、次のような添付ファイルのプロパティがあります...

正規表現に問題はありませんが、常に ModelState.IsValid が false になります。これは非常に些細で単純な正規表現のようですが、何か不足していますか? 独自のカスタム検証を作成する必要がありますか?

タイプファイルの通常の入力を介してAttachmentTraceにデータを入力しています:

アクション メソッドは単なる通常のアクションです。

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

asp.net-mvc - DataAnnotationsModelValidator アダプターを使用した MVC3 リモート検証

カスタム DataAnnotationsAttribute を使用して、モデルの DTO プロパティでさまざまな電話番号プロパティを検証したいと考えています。コードを DRY に保つために、DataAnnotations を ViewModel に複製したくありません。代わりに、DataAnnotationsModelValidatorProvider を使用してクライアント側の検証用のカスタム アダプターを登録しました。このアダプターは、通常 RemoteAttribute によって使用される ModelClientValidationRemoteRules を提供します。jQuery の控え目な検証は、個々のフィールドを検証する検証アクションを呼び出します。

ただし、この設定は実際には十分ではありません。

  1. 属性は現在、その ContainerType を使用して、呼び出す検証アクションを決定します。ただし、DTO はさまざまなネスト レベルのさまざまなビューモデルで使用されるため、アクションでどのプレフィックスを使用すればよいか正確にはわかりません。モデル階層内の ProfileDto の場所に応じて、アクション プレフィックスを変更する必要があります。

  2. 検証アクションは Request.Form.Keys を使用して、検証する必要があるプロパティを決定します。単体テストなどのために、Action の Request オブジェクトに近づかないことがベスト プラクティスであることはわかっています。

ポストバックで検証するフィールドの名前を含める良い方法があるので、Request.Form を使用する代わりに追加のパラメーターとしてアクションに含めることができますか?

モデル バインダーにプロパティをバインドさせる方法はありますか?

前もって感謝します!


属性は次のとおりです。

そしてアダプター:

アクションは次のとおりです。