上記のように、クライアント側の検証は問題なく実装されており、必要に応じて関連するメッセージがポップアップ表示されます。ただし、フォームが有効な状態でなくても、送信ボタンはフォームを送信しているように見えます。
ModelState が有効ではないため、コントローラ メソッドはすぐにそれをスローしますが、ポストがまったく発生しないようにクライアント側をチェックできるフラグ/プロパティはありますか?
更新: フォームが jquery 投稿を使用して非同期的に送信されるため、問題が発生したようです。そのため、検証状態に関係なく、JavaScript メソッドがデータを投稿しています。だから私が探しているのは、その投稿を行う前に、の行に沿って何かをすることif( [Property/Method which indicates MVC Model State] == false ) return false;
ですが、そのようなメソッドやプロパティを見つけるのに苦労しています。
「input-validation-error」クラスがフォーム フィールドに適用されているかどうかを識別するチェック機能を実装することを検討しました。JQuery を使用すると、かなり単純になりますが、私には合いません。これを行うことについて誰か意見がありますか?
一方で、それが実際に有効かどうかを確認するために検証された後、フォームを効果的に反復しているため、少しハックのように見えます。一方で、同じページに複数のフォームがあった場合、MVC JS がモデル状態をどのように識別するかはわかりませんが、自分で行う場合は、「このフォームの投稿については、私」を識別することができます。これらの分野に興味があります。