【发布时间】:2012-04-24 05:00:21
【问题描述】:
在我的 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() 函数时,它接受这个给定的名称,而不是通过拒绝它返回无效的名称。
我在哪里犯了错误?任何人都可以在这里帮助我....
【问题讨论】:
-
用
^[A-Za-z]*$的正则表达式试试。添加的 '^' 和 '$' 意味着该正则表达式应该匹配整个字符串而不是它的一部分。 asp.net regexvalidator 不需要这个,但这个属性可能。 -
非常感谢 Hans Kesting,它工作正常............
-
@Hans Kesting:你能在回答会话中发布这个,以便我可以将其标记为回答
标签: c# asp.net validation enterprise-library