2017-08-08 32 views
0

小数点値を検証は、私はこのような何かをすることができるように期待していた

これは、ユーザーが負の小数を入力妨げる
[MinimumSalary(0M)] 
public decimal Salary { get; set; } 

。しかし、コンパイラ・エラーが発生します。「有効な属性タイプではありません」。私はここに記載されている理由を理解しています:Why "decimal" is not a valid attribute parameter type?

私の花瓶の回避策は何ですか?

+4

ここで10進数を使用する必要がありますか?給料を12.56に制限しますか?ちょうど 'int'を使用してください。つまり、通常の 'Range'属性を使うことができます。 – DavidG

+3

'IsValid'が有効ですか? 'value> = _minValue'なら真を返すべきだと言っています... –

+0

@PeterB、私はこれを修正しました。ありがとう。 – w0051977

答えて

0

「範囲」注釈を使用できます。 10.50Dが最小値であり、50.80Dが最大値である...

[Range(10.50D,50.80D,ErrorMessage ="Error min")] 
public decimal Salary { get; set; } 

範囲属性は、データフィールドの値の数値範囲の制約を指定します。 System.ComponentModel.DataAnnotations(System.ComponentModel.DataAnnotations.dll)

+0

ありがとうございます。これは動作するようです。ダウンボートが何が間違っているのか説明できますか? – w0051977

+0

@ w0051977私は投票がなぜそれがうまくいくのか説明していない単なるコードダンプなので、答えの質のためだと思います。 – DavidG

+0

@DavidG、私はこの答えを見た場合、私はそれをupvoteと私はします。私はそれを明確かつ簡潔にしています。たぶん別の段落が助けになるだろう。原則として間違っていますか?ありがとう。 – w0051977

関連する問題