1

在我的 ASP.net 应用程序中,我在我的业务对象类文件中引用以下 dll 文件进行验证。

using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

我正在验证这样的属性

[StringLengthValidator(1, 50, MessageTemplateResourceName = "INVALID_NAME", 
 MessageTemplateResourceType = typeof(ValidatioinErrors))]
[RegexValidator("[A-Za-z]*", MessageTemplateResourceName = "INVALID_NAME",
 MessageTemplateResourceType = typeof(ValidatioinErrors))]
public string Name
{
  get { return name; }
  set { name = value; }
}

现在,当我使用 IsValid() 函数检查此验证时,我将 Name 的值传递为“test123”

public bool IsValid()
{
   return Validation.Validate<myclassname>(this).IsValid;
}

当我在将 name 的值传递为“test123”后检查这个 IsValid() 函数时,它接受这个给定的名称,而不是通过拒绝它来返回无效的名称。

我在哪里犯错?有人能帮我一下吗....

4

1 回答 1

0

尝试使用^[A-Za-z]*$.

添加的 '^' 和 '$' 意味着该正则表达式应该匹配整个字符串而不是它的一部分。

asp.net regexvalidator 不需要这些,但这是一个例外。常规正则表达式需要这些锚点来匹配完整的输入,而且这个属性显然也可以。

于 2012-05-22T12:51:25.517 回答