2015-10-01 107 views
0

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

我使用MVC中使用的默认验证,我认为它使用jQuery。有什么办法可以避免这个问题?

型号代码:

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

确定您可以使用逗号?而不是_dot_? – Grundy

+0

逗号。我的默认文化是es-ES – Levimatt

+0

您是否设置了文化?我忘记了全球化运行在MVC-4 – epascarello

回答

2

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

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

UPDATE

这篇文章可以帮助你:http://blog.icanmakethiswork.io/2012/09/globalize-and-jquery-validate.html。它解释了如何基本上将jQuery Validation修补为实际关注文化。

+2

链接已死! – Tobias