【发布时间】:2014-03-02 09:56:28
【问题描述】:
Product.cs
...
[Required(ErrorMessage="Price is required")]
[Range(0.01, 100000.00,
ErrorMessage="Price must be between 0.01 and 100000.00")]
public decimal Price { get; set; }
...
当我输入“89.48”时,表单显示“值 '89.48' 对价格无效”。 我认为这是因为我的 PC 的默认语言。这不是英语。是俄语。
我尝试通过haacked.com 说明解决这个问题:
- 我创建了模型类 DecimalModelBinder 并将代码从 haacked.com 复制到类中
-
用
更新了 Global.asaxModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder());没有效果。然后我尝试通过client-side validation修复它 1.添加了名为“jQueryFixes.js”的JavaScript文件和代码
$.validator.methods.range = function (value, element, param) { var globalizedValue = value.replace(",", "."); return this.optional(element) || (globalizedValue >= param[0] && globalizedValue <= param[1]); } $.validator.methods.number = function (value, element) { return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value); }
这段代码没有解决这个问题。 你能建议我在这里做错了什么吗?
【问题讨论】:
标签: c# javascript asp.net-mvc asp.net-mvc-3 validation