Каков наилучший способ добавления валидатора больше 0 на стороне клиента с помощью MVC и аннотации данных?


Я хотел бы иметь возможность разрешить отправку формы только в том случае, если значение в определенном поле больше 0. Я думал, что, возможно, атрибут диапазона Mvc позволит мне ввести только 1 значение, чтобы обозначить только больше, чем тест, но не повезло, поскольку он настаивает на минимальных и максимальных значениях.

есть идеи, как этого можно достичь?

3 63

3 ответа:

вы не можете хранить число больше, чем может содержать ваш базовый тип данных, поэтому тот факт, что атрибут диапазона требует максимального значения, очень хорош. Помните, что не существует в реальном мире, поэтому должно работать следующее:

[Range(1, int.MaxValue, ErrorMessage = "Please enter a value bigger than {1}")]
public int Value { get; set; }

в настоящее время, вы можете (ну)сделать Расширения Аннотаций Данных, который обеспечивает мин и Макс, функционируя так же, как вы ожидали бы их.

Я нашел этот ответ, чтобы проверить любое положительное значение для float / double. Оказывается, эти типы имеют полезную константу для "Эпсилона"

представляет наименьшую положительную систему.Двойное значение, которое больше нуля.

    [Required]
    [Range(double.Epsilon, double.MaxValue)]
    public double Length { get; set; }