我的一個視圖模型有一個屬性,GramWeight,定義爲MVC3數據註釋正則表達式驗證屬性失敗
[Display(Name="Gram Weight")]
[RegularExpression(@"[0-9]*\.?[0-9]+", ErrorMessage = "Gram Weight must be a Number.")]
[Range(0, 9999.99, ErrorMessage = "Value must be between 0 - 9,999.99")]
public decimal? GramWeight { get; set; }
當用戶輸入的值與一家領先的小數點就這一領域的驗證失敗,這樣的爲0.23而不是0.23。如果用戶將0添加到前面,則驗證通過。我曾以爲這是我的正則表達式的問題,但我在這個http://regexhero.net/tester/了一些測試,它似乎工作得很好。
所以,如果它不是正則表達式,它是別的東西?我即將準備好使用javascript爲用戶追加0,如果他們不這樣做。這是我最後的選擇,但我正在考慮它。
我給它一個鏡頭。 –
好吧,看來當我將屬性類型更改爲字符串,然後它的工作。雖然這解釋了這個問題,但我不確定我喜歡將我的所有小數域作爲字符串表示的想法。我認爲偉大的觀點,但沒有其他地方。由於我的模型經常作爲域對象,這真的是打擊。儘管感謝解決方案。 –
聽起來像是一些JavaScript可能會被要求以零前綴,如果它帶有小數點開始。你是否也使用客戶端驗證/輸入過濾? –