2010-09-06 5 views
0

Im работает в ASP.NET MVC приложение, которое было сделано в MVC 1 ... так валидация были сделаны после nerd dinner 1.0 tutorialasp.net MVC 1,0 Validations

Я просто определил правила, как этот

public bool Is_CellPhone(string val)   
     { 
      Regex celular = new Regex("^04[12][246][0-9]{7}$"); 
      return celular.IsMatch(val); 
     } 

и в моем GetRuleValidations я это делаю

if (!Is_CellPhone(Celular)) 
        yield return new RuleViolation("El celular no cumple el formato", 

"Celular"); 

проблема заключается в том .. мобильный телефоне не требуется поэтому, когда пользователь оленьей кожи представить, что значение прогонов метода проверки в любом случае и возвращает ошибка из-за пустой строки ... что я могу сделать, чтобы предотвратить эту ошибку?

ответ

1

Просто возвращает истину, если строка является нулевой или пустой:

public bool Is_CellPhone(string val)   
     { 
      if (string.IsNullOrEmpty(val)) { return true; } 
      Regex celular = new Regex("^04[12][246][0-9]{7}$"); 
      return celular.IsMatch(val); 
     } 

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

+0

Я предполагаю, что это работает, но тогда вам нужно будет сделать это для каждого настраиваемого правила ... которое является беспредметным. Правила валидации должны выполняться только при отправке значения – ignaciofuentes

Смежные вопросы