2011-03-21 14 views
1

で動作するようには思えません具体的に私のDTOこのvalidtor属性ベースの検証は、私はこのチュートリアルではこれらすべての指示に従いasp.net-MVC

[Validator(typeof(ProjectValidator))] 
public class ProjectViewModel 
{ 
} 

が、私はにModelStateエラーのリストを確認して行く形ポストの後、私が見るのエラーがasp.net-MVCのデフォルトの検証から来ています。

public ActionResult UpdateMe(ProjectViewModel entity) 
    { 
     Project existingProject = this.Repository.Fetch<Project>(entity.Id); 

     UpdateProperties(entity, existingProject); 
     var allErrors = ModelState.Values.SelectMany(v => v.Errors); 
     if (allErrors.Count() > 0) 
     { 

なぜ流暢ではないのですか?バリデーター?私は私がコードに直接バリデータを呼び出す場合、それだけで正常に動作します私は、GUIに表示されるものの

enter image description here

下の画像を追加しました:

ProjectValidator validator = new ProjectValidator(); 
ValidationResult result = validator.Validate(entity); 

答えて

1

私はどのような種類のわからないんだけどHTML要素FundingTypeIdは、私がドロップダウンリストであると仮定しています。何も選択されていない場合、このエラーが発生します。残念なことに、MVCのデフォルトモデルバインダーの設計が悪いためにFVとMVCの統合に限界があります。このメッセージはFVによって生成されるのではなく、DefaultModelBinderによって生成されます。この場合、入力値をプロパティタイプに変換できません。

チェックアウト私は流暢検証ディスカッション・フォーラムに投稿さこれらの2つの質問: http://fluentvalidation.codeplex.com/discussions/250798 http://fluentvalidation.codeplex.com/discussions/253389

関連する問題