2010-09-06 109 views
0

林在asp.net MVC應用程序的工作這是在MVC 1做......所以驗證了做以下的nerd dinner 1.0 tutorialasp.net的MVC 1.0驗證

我剛剛定義的規則是這樣

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

如果字符串爲null或空就返回true:

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 2010-09-06 20:10:48