2009-04-07 33 views
0

此使用RangeValidator控件是有問題的屬性聲明:與字節

[RangeValidator(1,RangeBoundaryType.Inclusive,255,RangeBoundaryType.Inclusive,MessageTemplate = "StartFlexibility is out of range")] 
    public byte StartFlexibility { get; set; } 

當validate方法被調用時,一個出現FormatException拋出告訴我,值類型必須是Int32類型。

如何解決?

回答

1

好...快速修復明顯將類型更改爲短或者int

,但其它的觀察我想做的事,與範圍。你告訴RangeValidator取1到256之間的範圍,但你可以分配一個字節值直到255,也許這是編譯器的理由。

的RangeValidator控件也infering從參數範圍的類型,所以,儘量鑄造

[RangeValidator((byte) 1, ... 
0

我從來沒有使用RangeValidator類/屬性,但它是一個問題,你有256作爲上限時,一個字節只能達到255?

1

至於說的Jhonny,轉換爲字節......但更喜歡這個

[RangeValidator(typeof(Byte), "1", RangeBoundaryType.Inclusive, "255", RangeBoundaryType.Inclusive, MessageTemplate = "Some message")] 

另一個選擇是在SelfValidation消息中調用範圍驗證器並在那裏投射。