2017-08-31 16 views
0

我試圖創建RangeDataAnnotation鍵入long號碼,但它總是拋出一個異常,我無法修復它。我認爲這個問題是因爲我需要輸入一個大數字作爲例子07608800000070然後它會拋出異常。如何使用DataAnnotation的範圍與長類型?

我該如何解決這個問題?

我想

[Range(minimum: 1, maximum: 999999999999999, ErrorMessage = "Type the Parcel ID")] 
public long parcelID {get;set;} 

異常

A first chance exception of type 'System.OverflowException' occurred in mscorlib.dll 
+0

您可以嘗試明確指定數據類型:'[Range(typeof(long),1,999999999999999,ErrorMessage =「輸入包裹ID」)]''。 –

回答

1

我也有同樣的問題,這是由於bug in jQuery Validation。他們聲稱這是固定的,但我認爲這又被打破了。有一個workaround(或修復),我用。

發生什麼事情是客戶端允許一個大於範圍的數字,因爲範圍JS代碼有一個錯誤,因此當這個大數字到達服務器時,服務器端驗證因此錯誤而中斷:

A first chance exception of type 'System.OverflowException' occurred in mscorlib.dll

確保您範圍的最大值可以放入一個長(使用或任何數據類型),否則即使客戶端驗證是爲了工作,你仍然會得到在服務器端的錯誤,如果它不適合進去。

+0

@FernandoPaiva請注意,如果您正在使用解決方法,並且您還有jquery驗證的縮小版本,則需要在縮小版本中包含修補程序(這就是我所做的),或者創建另一個縮小文件修復文件(我不知道如何做到這一點)。如果您不使用縮小版本,請忽略此評論。 – CodingYoshi