无阻碍客户端验证错误

cho*_*bo2 6 c# asp.net-mvc asp.net-mvc-3

我正在使用asp.net mvc 3,我一直收到以下错误.

不显眼的客户端验证规则中的验证类型名称必须是唯一的.以下验证类型不止一次出现:数字

我不知道我有这个

@Html.TextBoxFor(x => x.Mark)
Run Code Online (Sandbox Code Playgroud)

//我的viewmodel

   [Required(ErrorMessage = "Message")]
        [Number(ErrorMessage = "Message")]
        public decimal Mark { get; set; }
Run Code Online (Sandbox Code Playgroud)

如果我将它从小数改为字符串,它将不会抱怨.到底是怎么回事?

编辑

我认为正是因为这个 [Number(ErrorMessage = "Message")]注释.我正在使用此库数据注释扩展

似乎并不是说我使用小数.谁知道为什么?

Sco*_*and 9

如果您使用的是十进制类型,则不需要使用[Numeric]属性,因为MVC已经看到您正在使用数字类型并为您注入(导致错误).当您更改为字符串时,需要[数字]来告知验证您希望该字符串如何工作.

在DataAnnotationsExtensions的下一个版本中,我将更改[Numeric]属性,以便在这种情况下它不会与MVC版本冲突.但是现在,删除[Numeric]属性就好了,因为数字类型的[Numeric]无论如何都是多余的.