Pergunta

Esta é a declaração de propriedade em questão:

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

Quando o método de validação é chamado, um FormatException é jogado me dizendo que as necessidades tipo de valor a ser Int32.

Como corrigir, por favor?

Foi útil?

Solução

bem ... a correção óbvia rápida será alterar o tipo de short ou int,

mas uma outra observação que eu quero fazer, é com a faixa. Você está dizendo a RangeValidator para tomar um intervalo inclusivo entre 1 e 256, mas você só pode atribuir um valor byte até 255, talvez essa seja a razão compilador para gritar.

O RangeValidator também é inferir o tipo da Gama a partir dos parâmetros, por isso, tente lançando

[RangeValidator((byte) 1, ...

Outras dicas

Como Jhonny diz, elenco para byte ... mas mais como este

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

A outra opção seria a de chamar o validador gama em uma mensagem SelfValidation e lançou lá.

Eu nunca usei a classe RangeValidator / atributo, mas é um problema que você tem 256 como um limite superior, quando um byte só pode chegar a 255?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top