...精工程师
我为Employee提供了以下课程。
public class Employee
{
public string Name { get; set; }
public double Salary { get; set; }
}
我只想将double属性Salary的Validation设置为仅接受Numbers。
我尝试过如下。
<configuration>
<configSections>
<section name="validation" type="Microsoft.Practices.EnterpriseLibrary.Validation.Configuration.ValidationSettings, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<validation>
<type name="namespace.Model.Common.Masters.Employee" defaultRuleset="SaveRuleset"
assemblyName="namespace.Model.Common.Masters, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<ruleset name="SaveRuleset">
<properties>
<property name="Salary">
<validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.OrCompositeValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
messageTemplate="Salary accept numbers only." name="Or Composite Validator">
<validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.NotNullValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
negated="true" name="Not Null Validator" />
<validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.RegexValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
pattern="^[0-9]" name="Regular Expression Validator" />
</validator>
</property>
</properties>
</ruleset>
</type>
</validation>
</configuration>
我必须使用正则表达式吗?另请注意,我无法设置RangeValidator。
有人可以帮助我吗?
先谢谢,
此致 Sravan。
答案 0 :(得分:1)
似乎你的正则表达式只是验证输入的内容是以数字开头的。试试pattern="^\d*$"
RangeValidator将尝试使用IComparable接口实现,它不会执行字符串输入所需的操作。
Or Composite验证器与否定的Not Null验证器函数相结合,使工资“可选”。目前尚不清楚这是否是你想要的。