2009-08-10 17 views
0

実装する必要があるすべてのメソッドを持つIDataErrorInfoを実装する検証クラスがあります。この検証をどのようにして再検証できますか?

一つは

public string this[string columnName] 
     { 
      get 
      { 
      } 
     } 
     return ""; 

は今、このswitch文で、私は自分のフォームのためのいくつかの検証を持っています。

今私は、私のフォームの多くがまったく同じ検証用のものを必要としていることに気付きました。

これで、より多くのバリデーションを追加する必要がある場合、「IDataErrorInfo」を実装する新しいクラスを作成して、追加のvaldationを追加します。

は、その後、私はこの

CoreValidation coreReg = new CoreValidation(); 
try 
      { 
       UpdateModel(coreReg, regForm.ToValueProvider()); 

      } 
      catch 
      { 

       return View(); 
      } 

      MoreValidation moreReg = new MoreValidation(); 

      try 
      { 
       UpdateModel(moreReg , regForm.ToValueProvider()); 

      } 
      catch 
      { 

       return View(); 
      } 

ような何かを考慮に私はちょうど私が成長して保つことができる2つの別々のtry catchステートメントを持っている必要があるという事実が好きではありません。私が "コア"と "もっと"を取って、これらのいずれにも入っていないもう一つのバリデーションを加えたいと言わなければならない場合、私は別の試練を見ています。

私は "CoreValidation"クラスに行き、switch文とPropertiesを取り出して新しいクラスに入れようとしました。

私の計画は、そのクラスとメソッドをswtichステートメントで呼び出すことでした。だから私は希望「もっと」バリデーションクラスでこの

public string this[string columnName] 
     { 
      get 
      { 
       CoreValidtion(columnName); // this would contain the switch statement 

       //add another switch here with extra validation. 
      } 
     } 
     return ""; 

におけるそれから私は、唯一のトライキャッチを持っているでしょうし、すべてが同じ方法(CoreValidation)を呼び出しますので、私は任意のコードを複製することはないだろう。

しかし、updateModelはこれを理解できないようです。 UpdateModelがセットアップに必要なものをセットアップしようとすると、プロパティメソッドが見つからないので、

"UserName"のすべてのプロパティがすべてnullに設定されます。

どうすればいいですか?

おかげ

答えて

0

は、私はあなたが、検証はこれらの例にどのように行われるかを確認するためにサンプルasp.net MVCプロジェクト、特にnerdinnerとcontactmangement例のカップルを見てみましょうお勧めします。これらの例は、検証に関する非常に明確なガイドを提供します。

投稿はlist those sample projectsになりました。

関連する問題