1

技術者...

私は従業員のために次のクラスを持っています。

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。

4

1 に答える 1

1

あなたの正規表現は、入力されたものが数字で始まることを確認しているようです。試してみてくださいpattern="^\d*$"
RangeValidator は IComparable インターフェイスの実装を使用しようとしますが、これは文字列入力に必要なことを行いません。
Or Composite バリデーターを否定された Not Null バリデーター関数と組み合わせて、給与を「オプション」にします。それがあなたが望むものかどうかは明らかではありません。

于 2012-10-26T21:33:59.497 に答える