3

次のようなコードがあります。

    [DisplayName("Refresh Rate")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:G2}")]
    [Range(1.00, 150.00, ErrorMessage = "Must be between 1 and 150")]
    public virtual decimal RefreshRate { get; set; }

これは機能しません。に変更すると

[Range(0.00, 150.00, ....

できます。適切な方法を使おうとすると

[Range(typeof(Decimal), "1", "150", ....

それも機能しません。「機能しない」とは、検証されないことを意味します。0 が機能するのに、他の数値が機能しないのはなぜですか? このコードを機能させるにはどうすればよいでしょうか?

4

1 に答える 1

0

小数を検証する目的が何なのかわかりませんが、このトリックがうまくいくかもしれません:

2 つの精度の数値が必要なため、それを使用できるかもしれない DataType があります: Currency. したがって、おそらく次のようになります。

[DisplayName("Refresh Rate")]
[Datatype(DataType.Currency)]
[Range(1, 150, ErrorMessage = "Must be between 1 and 150")]
public virtual decimal RefreshRate { get; set; }

うまくいかなかったら教えてください...

于 2013-07-25T10:04:19.693 に答える