asp.net-mvc-3 - 带十进制的数据注释不起作用

标签 asp.net-mvc-3 data-annotations

我们有这样的代码:

    [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/

相关文章:

MVC3 的 jquery 日期时间选择器日期时间格式问题

.net - 跨所有 subview 的 ASP.NET MVC 3 布局 ViewBag 数据

asp.net-mvc-3 - ASP MVC 3 在构建服务器上缺少 WebApplication.targets

c# - 将输入到数据库的电子邮件地址与 DataAnnotations 进行比较

asp.net-mvc - ASP.NET MVC : Adding custom ErrorMessage that incorporates DisplayName to custom ValidationAttribute

json - 将 JSON 数据从 Chrome 浏览器扩展发布到 MVC Controller

azure - 移动应用 Azure、数据注释

c# - 持久化对象时自动创建对象历史记录

c# - "Inheriting"创建 ViewModel 时来自多个模型的 DataAnnotations

c# - MVC 3 View 中的 2 个模型