这是有问题的属性声明:

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

当验证方法被调用时,一个出现FormatException抛出告诉我,值类型必须的Int32。

如何解决,好吗?

有帮助吗?

解决方案

...以及快速明显修复将是类型更改为短或者int

但另一个观察我想要做的,与范围。你是在告诉RangeValidator控件取1和256之间的包容性的范围,但你可以直到255指定字节值,也许这就是编译器的理由哭了出来。

在RangeValidator控件还infering从参数的范围的类型,所以,尝试铸造

[RangeValidator((byte) 1, ...

其他提示

作为的Jhonny说,转换为字节......但更多的像这样

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

在其他选择是调用在SelfValidation消息中的范围验证并浇铸在那里。

我从来没有使用RangeValidator控件类/属性,但它是你有256个为上限,当一个字节只能得到255个问题?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top