“十进制字段必须是数字”

时间:2015-10-01 16:41:22

标签: jquery asp.net-mvc-4

我正在努力为这个问题找到一个可能的简单解决方案。网上找到的所有解决方案都不适用于我。我在我的模型中有一个价格字段,可以是一个十进制值,如30,5使用逗号。但验证返回错误“''字段'必须是数字”。

我正在使用MVC中使用的默认验证,我认为它使用的是jQuery。有没有办法避免这个问题?

型号代码为:

 [Range(0.0, Double.MaxValue, ErrorMessage = "Out of range")]
    [DataType(DataType.Currency)]
    public decimal Price { get; set; }

1 个答案:

答案 0 :(得分:3)

我认为错误来自客户端验证,而不是服务器端验证。如果它实际到达服务器,你应该没有指定文化。但是,ASP.NET的不显眼验证实际上使用了jQuery Validation插件,正如您在documentation page for the number validator所见,只有.作为小数分隔符才会生效。您可能只需要从字段中删除号码验证规则。

$("#Price").rules("remove", "number");

<强>更新

这篇文章可能会对您有所帮助:http://blog.icanmakethiswork.io/2012/09/globalize-and-jquery-validate.html。它解释了如何基本上修补jQuery验证以实际关注文化。