ASP.NET MVC: Validar campo a partir de outro

.NET

26/07/2017

Oi, galera.

Estou usando Entity Framework e ASP.NET MVC. Para validar os campos eu uso Data Annotations. Porém, agora estou precisando validar um campo a partir do outro e não estou conseguindo fazer com anotações. Por exemplo, preciso de algo assim:

[Range(0, Double.MaxValue)]
public decimal ValorTotal { get; set; }

[Range(0, ValorTotal)]
public decimal DescontoTotal { get; set; }


Mas isso não é possível. Alguém já teve um cenário assim?
Rachel Andrade

Rachel Andrade

Curtidas 0

Melhor post

Joel Rodrigues

Joel Rodrigues

27/07/2017

Oi, Rachel. Tudo bem?

As Data Annotations só podem fazer as validações a partir de valores estáticos como 0, Double.MaxValue, etc, por isso você não pode passar valores variáveis como DateTime.Today ou outra propriedade.

Para contornar esse problema sugiro usar a biblioteca FluentValidation. Inclusive recentemente lançamos um conteúdo em que usamos essa biblioteca: https://www.devmedia.com.br/exemplo/web-service-restful-com-crud-filtros-e-ordenacao-usando-asp-net-web-api/25

Abraço.
GOSTEI 1

Mais Respostas

Rachel Andrade

Rachel Andrade

26/07/2017

Bem legal, Joel. Obrigada pela ajuda. Eu não conhecia essa biblioteca e realmente achei bem fácil de usar nos testes que fiz. Vou fazer mais umas verificações, mas acho que me atende muito bem. =)
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

26/07/2017

Isso aí, Rachel. Essa é uma biblioteca muito poderosa e flexível.

Ontem lançamos um curso especificamente sobre ela. Acredito que vai lhe ajudar: FluentValidation: Como validar dados em .NET
GOSTEI 0
POSTAR