我正在努力为这个问题找到一个可能的简单解决方案。网上找到的所有解决方案都不适用于我。我在我的模型中有一个价格字段,可以是一个十进制值,如30,5使用逗号。但验证返回错误“''字段'必须是数字”。
我正在使用MVC中使用的默认验证,我认为它使用的是jQuery。有没有办法避免这个问题?
型号代码为:
[Range(0.0, Double.MaxValue, ErrorMessage = "Out of range")]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
答案 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验证以实际关注文化。