/ / ModelErrorとValidationResultの違いは何ですか? - c#、asp.net-mvc、validation、modelstate

ModelErrorとValidationResultの違いは何ですか? - c#、asp.net-mvc、validation、modelstate

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の検証に関する詳細な記事を投稿しました。 ここに