none
Validar propriedade com "RegexValidator" sendo o campo vazio. RRS feed

  • Pergunta

  • Prezados, bom dia.

    Tudo bem? Estou com seguinte situação. Tenho uma propriedade entity que estar com o campo vazio (NÃO é null). 

    Por estar vazio, a "StringLengthValidator" valida corretamente não estourando erro. Porém, o "RegexValidator" não estou conseguindo fazer ele ignorar a validação caso esteja vazio a propriedade.

    Abaixo a propriedade:

    [StringLengthValidator(0, RangeBoundaryType.Inclusive, 44, RangeBoundaryType.Inclusive, Tag = MensagemCommon.MSG_TAG_ENTITY, MessageTemplate = MensagemCommon.MSG_STRING_LENGTH_VALIDATOR, Ruleset = ValidacaoCommon.VALIDACAO_PRECISAO)]
    [RegexValidator(ExpressõesRegularesSEFAZCommon.ER3, Ruleset = ValidacaoCommon.VALIDACAO_EXPRESSAO_REGULAR)]
    public string NumeroX { set; get; }
    

    Regra "Expressão Regular"

    public const string ER3 = @"[0-9]{44}";

    Saberiam como resolver isso?

    Obrigado pelo apoio.

    sexta-feira, 21 de março de 2014 13:30

Respostas

  • Pessoal, conseguir resolver a questão. Segue abaixo:

    - Temos que utilizar o StringLengthValidator com valor minimo / maximo igual a zero para conseguir barrar a validação RegexValidator caso o campo esteja vazio.
    - O campo não pode ser NULL.

    [ValidatorComposition(CompositionType.Or, MessageTemplate = MensagemCommon.MSG_VALIDATOR_COMPOSITION_REGEX_VALIDATOR, Ruleset = ValidacaoCommon.VALIDACAO_EXPRESSAO_REGULAR)]
    [RegexValidator(ExpressõesRegularesSEFAZCommon.ER3, Tag = MensagemCommon.MSG_TAG_ENTITY, Ruleset = ValidacaoCommon.VALIDACAO_EXPRESSAO_REGULAR)]        
    [StringLengthValidator(0, RangeBoundaryType.Inclusive, 0, RangeBoundaryType.Inclusive, Tag = MensagemCommon.MSG_TAG_ENTITY, MessageTemplate = MensagemCommon.MSG_STRING_LENGTH_VALIDATOR, Ruleset = ValidacaoCommon.VALIDACAO_EXPRESSAO_REGULAR)]

    • Marcado como Resposta Andersonfsa sábado, 22 de março de 2014 23:40
    sábado, 22 de março de 2014 23:40

Todas as Respostas

  • Alguém que possa ajudar?

    Abraço

    sexta-feira, 21 de março de 2014 19:53
  • Pessoal, conseguir resolver a questão. Segue abaixo:

    - Temos que utilizar o StringLengthValidator com valor minimo / maximo igual a zero para conseguir barrar a validação RegexValidator caso o campo esteja vazio.
    - O campo não pode ser NULL.

    [ValidatorComposition(CompositionType.Or, MessageTemplate = MensagemCommon.MSG_VALIDATOR_COMPOSITION_REGEX_VALIDATOR, Ruleset = ValidacaoCommon.VALIDACAO_EXPRESSAO_REGULAR)]
    [RegexValidator(ExpressõesRegularesSEFAZCommon.ER3, Tag = MensagemCommon.MSG_TAG_ENTITY, Ruleset = ValidacaoCommon.VALIDACAO_EXPRESSAO_REGULAR)]        
    [StringLengthValidator(0, RangeBoundaryType.Inclusive, 0, RangeBoundaryType.Inclusive, Tag = MensagemCommon.MSG_TAG_ENTITY, MessageTemplate = MensagemCommon.MSG_STRING_LENGTH_VALIDATOR, Ruleset = ValidacaoCommon.VALIDACAO_EXPRESSAO_REGULAR)]

    • Marcado como Resposta Andersonfsa sábado, 22 de março de 2014 23:40
    sábado, 22 de março de 2014 23:40