Выборочная проверка между двумя свойствами с плавающей точкой Asp .Net Core - PullRequest
1 голос
/ 19 июня 2019

У меня есть 2 свойства в модели

public class Geometria
{
    public int Id { get; set; }

    public string Componente { get; set; }

    [Range(0, float.MaxValue)]   
    public float ToleranciaInferior { get; set; }

    [Range(0,float.MaxValue)]
    public float ToleranciaSuperior { get; set; }     
}

Свойство ToleranciaSuperior не может быть таким же или равным ToleranciaInferior.

Как мне добиться этого с помощью аннотаций?

1 Ответ

1 голос
/ 19 июня 2019

Было бы удобнее поместить собственную логику проверки в саму модель представления, если только вы не делаете это на нескольких моделях представления.

public class Geometria : IValidatableObject
{
    public int Id { get; set; }

    public string Componente { get; set; }

    [Range(0, float.MaxValue)]   
    public float ToleranciaInferior { get; set; }

    [Range(0,float.MaxValue)]
    public float ToleranciaSuperior { get; set; }     

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (ToleranciaInferior == ToleranciaSuperior) 
        {
            yield return new ValidationResult(
                "Your error message", 
                new string[] { 
                    nameof(ToleranciaInferior), nameof(ToleranciaSuperior) 
                });
        }
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...