ASP.NET MVCには、 ModelState ModelErrorCollectionを含むクラス。 ModelErrorは、モデル結合中に発生するエラーを表します。
そんなこと知ってる ValidationResult ValidationAttributeから返されます。IsValidメソッドを呼び出し、現在の検証属性に対して指定された値を検証します。カスタムモデル検証属性を書き込むために、validationAttributeを継承してIsValid()をオーバーライドできることを理解します。
使用例 ModelState</ strong>: http://www.asp.net/mvc/tutorials/older-versions/models-(data)/performing-simple-validation-cs
使用例 ValidationResult</ strong>: http://www.codeproject.com/Articles/260177/Custom-Validation-Attribute-in-ASP-NET-MVC
これらの2つはどのように連携しますか?一緒に働かないの?交差点は何ですか?この質問は、ASP.NET MVCの検証アプローチをよりよく理解しようとしています。
なぜ私は興味を持っているのですか?単にデータを使用するのはなぜですか注釈?答えは、私はASP.NET MVCの動的フィールドの検証をよりよく理解したいと思っています。私の製品の文脈では、validationAttributesを結び付けるための事前に決められた特性のモデルはありません。
回答:
回答№1は2私はASP.NET MVCが初めてです。 2の私の理解から、あなたは言いました。
ValidationResult プロパティメソッドにリンクされたエラーメッセージをカスタム化することができます。 IValidatableObject
各モデルを定義して Validate
方法。 したがって、私の視点から見ると、ValidationResultは、モデル検証の条件と結果を構成するための機能によく似ています。
ModelStateを使用すると、ModelStateの一部としてValidationResultからカスタムエラーを発生させることができます ModelState.AddModelError(memberName, validationResult.ErrorMessage)
ValidationResultとModelStateを組み合わせることで、 if (ModelState.IsValid)
私たちのコントローラでは、内部的な動作には既にカスタムエラーメッセージと検証条件が含まれています。
パトリックは、MVCの検証に関する詳細な記事を投稿しました。 ここに