我想使用范围验证器:
[Range(typeof(Decimal), "0.1", "9999",
ErrorMessage = "{0} must be a decimal/number between {1} and {2}.")]
但我使用的是
DecimalModelBinder
,所以十进制值现在使用逗号而不是句点(点)。所以
2,5
现在有效而不是 2.5
我想使用 0.1 到 9999 之间的范围。
我收到错误:
编辑:
我在 web.xml 中使用这种文化设置
<system.web>
<globalization fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
uiCulture="sl-SI"
culture="sl-SI" />
</system.web>
最佳答案
它脱离了您当前的文化环境。
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator
您当前的文化 SL 使用“,”作为小数点分隔符。如果您使用像 en-US 这样的文化,如果会使用“.”。作为有效。
确保您当前的线程文化设置为 SL,可以使用上面的代码进行检查。
另外,我不确定这是否重要,但文档说比较类型应该是 double 数,而不是十进制数。
关于c# - 范围验证,其中值用逗号而不是点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29437989/