我们有这样的代码:
[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 有效,而其他任何数字都无效?我们怎样才能让这段代码工作?
最佳答案
我不知道你验证小数的目的是什么,但也许这个技巧对你有用:
由于您需要 2 个精度数字,所以有一个数据类型也许可以使用它:货币。因此,也许以下内容适合您:
[DisplayName("Refresh Rate")]
[Datatype(DataType.Currency)]
[Range(1, 150, ErrorMessage = "Must be between 1 and 150")]
public virtual decimal RefreshRate { get; set; }
如果不行请告诉我...
关于asp.net-mvc-3 - 带十进制的数据注释不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004813/