Lev*_*att 1 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; }
Run Code Online (Sandbox Code Playgroud)
我相信错误来自客户端验证,而不是服务器端。如果它确实到达服务器,则指定区域性应该没问题。但是,ASP.NET的非侵入式验证实际上使用jQuery Validation插件,并且正如您在此处的number验证器文档页面上看到的.那样,只有a 作为小数点分隔符可以验证。您可能只需要从字段中删除数字验证规则。
$("#Price").rules("remove", "number");
Run Code Online (Sandbox Code Playgroud)
更新
这篇文章可能会对您有所帮助:http : //blog.icanmakethiswork.io/2012/09/globalize-and-jquery-validate.html。它说明了如何从本质上猴子修补jQuery验证,从而真正关注文化。