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 回答