【问题标题】:The value is not valid for double/decimal该值对双/十进制无效
【发布时间】:2018-12-24 10:29:54
【问题描述】:

您好,我一直在努力让它工作很长时间,但我已经没有选择了。无论我尝试什么,根据 Jquery 验证器,双/十进制的值总是无效的。这是我尝试过的列表:

  • 在 web.config 中设置区域性
  • 在 CurrentThread 中设置区域性
  • 将类型从 Decimal 更改为 Double
  • 将输入类型从数字更改为文本
  • 使用 globalize.js
  • 使用此处的自定义正则表达式修复
  • 使用在此处找到的 DecimalBinder

没有,绝对没有任何东西可以解决这个错误。如果有人能指出我在这里做错了什么,我将不胜感激。

【问题讨论】:

  • 您在 55,95 中似乎使用了逗号 (,)。这是预期的吗?
  • 数字输入会自动将其更改为逗号,尽管在验证中它会显示一个点 (.)
  • 请不要使用图片代替发布实际代码。它破坏了搜索索引,没有人可以剪切和粘贴。

标签: asp.net asp.net-mvc unobtrusive-validation jquery-globalize


【解决方案1】:

DisplayFormat.DataFormatStringuses .NET's predefined formatting rules。特别是,.(点/句点)总是被解释为“当前文化的小数点”,在您的情况下是,,或逗号。

如果你想用文字点分隔数字的整数部分和小数部分,你需要转义它:

[DisplayFormat(DataFormatString = @"{0:0\.00}", ApplyFormatInEditMode = true)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2016-11-14
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多