StringLength DataAnnotaion不工作MVC4

时间:2013-08-13 10:44:35

标签: c# asp.net-mvc-4 data-annotations string-length

我的模型类中有一个属性,如 -

[StringLength(4)]        
        [DisplayName("Price")]
        public string Price{ get; set; }

正如你所看到的,我已经使用StringLength作为这个属性的约束,它的长度不应该超过4但是当我使用像-1.23这样的小数点时它会起作用但是当我不使用小数点时它需要超过4个stringlength值。

我该如何解决。

还有一个问题: - 我想在小时(我的模型类中的属性)上应用验证,如果它是十进制的,它可以占用最多2位数(小时的最大值可以是一天只有24),如(4.20)并且如果它没有十进制,最多可达2位数,如(24)

我希望我很清楚

1 个答案:

答案 0 :(得分:0)

如果要存储十进制值,则应使用decimal类型而不是字符串。您可以使用RangeAttribute

约束允许的最大值
[Range(0, 9999)] // First argument (0) represents minimum and second argument (9999) represents maximum value allowed for Price.
public decimal Price { get; set; }

对于与小时数相关的其他问题,您可以使用TimeSpan数据类型,它只允许您存储时间值。 您应该始终努力为要存储的数据使用正确的类型,以确保数据的完整性和易维护性。