1

技术人员...

我有以下员工课程。

public class Employee
{
    public string Name { get; set; }
    public double Salary { get; set; }
}

我只想将双重属性 Salary 的验证设置为仅接受数字。

我试过像下面这样。

<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。

有人可以帮我吗?

提前致谢,

问候,斯拉万。

4

1 回答 1

1

您的正则表达式似乎只是验证输入的内容是否以数字开头。尝试pattern="^\d*$"
RangeValidator 将尝试使用 IComparable 接口实现,它不会执行您需要的字符串输入。
Or Composite 验证器与否定的 Not Null 验证器功能相结合,使薪水“可选”。目前尚不清楚这是否是您想要的。

于 2012-10-26T21:33:59.497 回答