使用jQuery验证器在MVC 3中未正确验证十进制

使用jQuery验证器在MVC 3中未正确验证十进制,jquery,asp.net-mvc,asp.net-mvc-3,jquery-validate,Jquery,Asp.net Mvc,Asp.net Mvc 3,Jquery Validate,我有一个类似于sopublic decimal的属性?MyProperty{get;set;},它不是必需的并且可以为空,但是如果我没有输入值>0,验证器会说字段MyProperty必须是一个数字,如果我将字段留空,我会收到相同的错误,如果输入0(零),我会收到相同的错误 Ex: 0 -> Error 1 -> Ok 0,00 -> Error 0,01 -> Ok empty -> Error 我不明白为什么这不起作用,我使用的是$.preferCulture(

我有一个类似于so
public decimal的属性?MyProperty{get;set;}
,它不是必需的并且可以为空,但是如果我没有输入值
>0
,验证器会说字段MyProperty必须是一个数字,如果我将字段留空,我会收到相同的错误,如果输入0(零),我会收到相同的错误

Ex:
0 -> Error
1 -> Ok
0,00 -> Error
0,01 -> Ok
empty -> Error
我不明白为什么这不起作用,我使用的是
$.preferCulture(“pt-BR”)但是没有意义,因为值
0,01
被接受,所以我不认为文化是问题所在


PS:validation在客户端不工作,服务器端工作正常。

默认数字函数有一个错误。它的测试是
parseFloat(value)=0
,而“0”的parseFloat返回0

为了解决这个问题,我将其改写为

$.validator.methods.number = function (value, element) {
  return parseFloat(value).toString() !== "NaN";
}

我知道这不是最好的方法,但这个解决方法解决了我的问题。

我发现了这个方法,它非常有用,但它可能也应该注意到MVC没有将验证程序代码包含到您的代码中,您必须自己做。