2015-04-03 83 views
4

我想用一个范围验证:范围验证其中的值是逗号,而不是用点

[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

之间

范围:

0.1 is not a valid value for Decimal.

编辑:

我在web.xml中使用这种文化设置

<system.web> 
    <globalization fileEncoding="utf-8" 
      requestEncoding="utf-8" 
      responseEncoding="utf-8" 
      uiCulture="sl-SI" 
      culture="sl-SI" /> 
    </system.web> 
+1

什么CultureInfo你有你的当前线程设置为?有些文化使用逗号而不是小数。 – Ronnie 2015-04-03 18:56:52

+0

验证错误是在客户端还是服务器上发生? – Ronnie 2015-04-07 15:02:18

回答

0

它关闭您当前的文化设置。 System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator

您当前的文化SL使用“,”作为小数点分隔符。如果你使用像EN-US这样的文化,如果采取“。”。作为有效。

确保您当前的线程文化设置为SL,可以使用上面的代码进行检查。

另外,我不确定它是否重要,但文档说比较类型应该是双倍的,而不是小数。

+0

是的,我想逗号作为有效的分隔符而不是点。 – mbrc 2015-04-03 19:08:09