Joe*_*mov 5 javascript c# validation asp.net-mvc asp.net-mvc-3
产品.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; }
...
Run Code Online (Sandbox Code Playgroud)
当我输入“89.48”时,表单给出“值“89.48”对价格无效”。我认为这是因为我电脑的默认语言。它不是英语。它是俄语。

我试图通过haacked.com说明解决这个问题:
更新了 Global.asax
ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder());
Run Code Online (Sandbox Code Playgroud)
没有效果。然后我尝试通过客户端验证修复它 1.Added JavaScript file called "jQueryFixes.js" with code
Run Code Online (Sandbox Code Playgroud)$.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); }
这段代码没有解决这个问题。你能建议我在这里做错什么吗?
小智 6
我在 web.config 中设置
<system.web>
<globalization uiCulture="en-US" culture="en-US"/>
<system.web>
Run Code Online (Sandbox Code Playgroud)
这个解决方案对我有用,我遇到了同样的错误
尝试这个
[Required(ErrorMessage = "Price is required")]
[Range(typeof(decimal), "0.01", "100000.00", ErrorMessage = "enter decimal value")]
[RegularExpression(@"^\[0-9]{1,6}\.[0-9]{2}$", ErrorMessage="enter decimal value of format $9.99")]
public decimal Price { get; set; }
Run Code Online (Sandbox Code Playgroud)
应该有帮助。
| 归档时间: |
|
| 查看次数: |
10186 次 |
| 最近记录: |