Asp.net mvc asp.net mvc 1.0验证
我在asp.NETMVC应用程序中工作,该应用程序是在MVC1中完成的。。。因此,验证是按照以下步骤进行的: 我刚刚定义了一个这样的规则Asp.net mvc asp.net mvc 1.0验证,asp.net-mvc,validation,Asp.net Mvc,Validation,我在asp.NETMVC应用程序中工作,该应用程序是在MVC1中完成的。。。因此,验证是按照以下步骤进行的: 我刚刚定义了一个这样的规则 public bool Is_CellPhone(string val) { Regex celular = new Regex("^04[12][246][0-9]{7}$"); return celular.IsMatch(val); } 在我的GetRule
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");
问题是。。手机不是必需的,因此当用户不提交该值时,验证方法仍会运行,并返回一个错误,因为空字符串。。。如何正确防止此错误?如果字符串为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);
}
我想你也可以在正则表达式中涵盖这一点,但我对正则表达式很差劲,所以我不会假装在正则表达式中给出建议。我想这是可行的,但是你需要对每个自定义规则都这样做。。。这是毫无意义的。。规则验证应仅在提交值时运行