我正在使用 asp.net mvc 3,但我不断收到以下错误。
Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: number
我不知道,因为我有这个
@Html.TextBoxFor(x => x.Mark)
//我的 View 模型
[Required(ErrorMessage = "Message")]
[Number(ErrorMessage = "Message")]
public decimal Mark { get; set; }
如果我将它从十进制更改为字符串,它不会提示。这是怎么回事?
编辑
我认为这是因为 [Number(ErrorMessage = "Message")]
注释。我正在使用这个库 Data annotation extensions
看来我用的不是小数。有人知道为什么吗?
最佳答案
如果您使用的是 decimal 类型,则不需要使用 [Numeric] 属性,因为 MVC 已经看到您正在使用数字类型并为您注入(inject)该类型(这会导致错误)。当您更改为字符串时,需要 [Numeric] 来告诉验证您希望该字符串如何工作。
在下一个版本的 DataAnnotationsExtensions 中,我将更改 [Numeric] 属性,因此在这种情况下它不会与 MVC 版本冲突。但就目前而言,删除 [Numeric] 属性会很好,因为数字类型上的 [Numeric] 无论如何都是多余的。
关于c# - 无障碍客户端验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695906/