2015-04-03 42 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

相關問題