2009-08-10 2 views
0

У меня есть класс проверки, который реализует IDataErrorInfo, который имеет все методы, которые вы должны реализовать.Как я могу реорганизовать это подтверждение?

Один

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

Теперь в этом переключатель заявления у меня есть некоторые проверки для моей формы.

Теперь я заметил, что многие мои формы нуждаются в одном и том же материале проверки.

Итак, теперь, когда мне нужно добавить дополнительную проверку, я создаю новый класс, который реализует «IDataErrorInfo», добавляет дополнительную валдацию.

Тогда в представлении я сделать что-то вроде этого

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 отдельных заявления попытки уловов, которые могут продолжать расти. Если бы мне нужно было сказать «ядро» и «больше» и добавить еще несколько валидаций, которые не могут пройти ни по одному из них, я смотрю на другую попытку.

Я попытался перейти к классу «CoreValidation» и извлечь из него оператор switch и свойства и поместить его в новый класс.

Мой план состоял в том, чтобы просто вызвать этот класс и метод с помощью инструкции 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 пытается настроить все, что ему нужно для настройки, он не может найти методы свойств, поэтому все свойства, такие как

«Имя пользователя» имеют значение null.

Так как я могу делать то, что хочу?

Благодаря

ответ

0

Я хотел бы предложить вам взглянуть на пару образец ASP.NET MVC проекта, особенно nerdinner и contactmangement пример, чтобы увидеть, как проверка выполняется в этих примерах. Эти примеры дадут вам очень четкое руководство по валидации.

У меня была почта до list those sample projects здесь.