문제

이것은 해당 재산 선언입니다.

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

Validate 메소드가 호출되면 값 유형이 int32 인 것으로 알려진 FormateXception이 발생합니다.

수정하는 방법, 제발?

도움이 되었습니까?

해결책

글쎄 ... 빠른 명백한 수정은 유형을 짧은 또는 int로 변경하는 것입니다.

그러나 내가하고 싶은 또 다른 관찰은 그 범위에 관한 것입니다. RangeValidator에게 1에서 256 사이의 포괄적 인 범위를 취하도록 지시하지만 255까지 바이트 값을 할당 할 수 있습니다.

Rangevalidator는 또한 매개 변수의 범위 유형을 유추하고 있으므로 캐스팅을 시도하십시오.

[RangeValidator((byte) 1, ...

다른 팁

Jhonny가 말했듯이 바이트에 캐스트하지만 이렇게

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

다른 옵션은 Self -Validation 메시지에서 Range Validator를 호출하여 캐스트하는 것입니다.

RangeValidator 클래스/속성을 사용한 적이 없지만 바이트가 255에 도달 할 수있을 때 상한으로 256을 가진 문제입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top