2013-04-07 74 views
0

我有一個雙可變錯誤的錯誤消息:所以我說數據詮釋 - 對數字

public double Width { set; get; } 

我要驗證的數量,並顯示一條錯誤消息:

[Range(0.0, Double.MaxValue, ErrorMessage = "Width must be a valid number")] 

它的偉大工程,如果我輸入一個負數,但如果我將它留空或輸入字母 - 內部錯誤消息是

「輸入字符串格式不正確。」

我不是usign @ html.validationmessagefor,因爲我需要手動處理ModelState的ErrorMessage或error.exception.InnerException.message。

我該如何解決這個問題?

+0

查看http://stackoverflow.com/questions/3451255/asp-net-mvc-int-property-bind-exception – LostInComputer 2013-04-07 12:07:40

回答

0

看來,這個錯誤消息來自double.Parse

數據註釋屬性不使用雙類,他們只是使用一些框架。

無論如何,它看起來像你的輸入字符串是無效的雙倍,所以範圍驗證與有效的雙字符串無關。

+0

我通過JS創建一個viewmodel併發送它,所以也許這就是爲什麼它使用double.parse ?無論如何,我怎樣才能改變這條消息的文字呢? – TamarG 2013-04-07 12:16:36

+0

也許在onvalidation事件中,您可以通過double.TryParse函數檢查它,然後在需要時拋出一個新的自己的異常 – user287107 2013-04-07 12:18:26

+0

hmm ..我沒有原始值。如果我輸入「abc」而不輸入數字 - 我在「寬度」中獲得「0.0」,並且「ModelState.IsValid」爲假; – TamarG 2013-04-08 11:15:26