我正在使用asp.net mvc 3并且我一直收到以下错误。
验证类型名称不引人注目 客户端验证规则必须是 独特。以下验证类型 不止一次见过:数字
我不知道我有这个
@Html.TextBoxFor(x => x.Mark)
//我的viewmodel
[Required(ErrorMessage = "Message")]
[Number(ErrorMessage = "Message")]
public decimal Mark { get; set; }
如果我将它从小数改为字符串,它就不会抱怨。发生了什么事?
修改
我认为正是因为[Number(ErrorMessage = "Message")]
注释。我正在使用此库 Data annotation extensions
似乎并不是因为我使用小数。谁知道为什么?
答案 0 :(得分:9)
如果您使用的是十进制类型,则不需要使用[Numeric]属性,因为MVC已经看到您正在使用数字类型并为您注入(导致错误)。当您更改为字符串时,需要[数字]来告知验证您希望该字符串如何工作。
在DataAnnotationsExtensions的下一个版本中,我将更改[Numeric]属性,以便在这种情况下它不会与MVC版本冲突。但是现在,删除[Numeric]属性就好了,因为数字类型的[Numeric]无论如何都是多余的。
答案 1 :(得分:2)
您可能有多个模型验证程序,它们两次添加相同的客户端规则,您使用自定义的validatiOn提供程序吗?
答案 2 :(得分:0)
Required
将变为重复,因为Mark
不可为空。我会将其更改为decimal?