Как указать минуту, но никакое макс. десятичное число с помощью атрибута аннотирования данных диапазона?

Я хотел бы указать, что десятичное поле за цену должно быть> = 0, но я действительно не хочу налагать макс. значение.

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

[Range(typeof(decimal), "0", "??"] public decimal Price { get; set; }
135
задан Brian Tompsett - 汤莱恩 5 November 2015 в 17:00
поделиться

4 ответа

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

[Range(typeof(decimal), "0", "79228162514264337593543950335")]
public decimal Price { get; set; }
39
ответ дан 23 November 2019 в 23:42
поделиться

Как насчет чего-то вроде этого:

[Range(0.0, Double.MaxValue)]

Это должно делать то, что вы ищете, и вы можете избежать использования строк.

202
ответ дан 23 November 2019 в 23:42
поделиться

Я бы поставил decimal.MaxValue.ToString () , поскольку это эффективный потолок для десятичного типа эквивалентен отсутствию верхней границы.

1
ответ дан 23 November 2019 в 23:42
поделиться

Если вы работаете с ценами, я уверен, что вы можете смело предположить, что ничто не будет стоить больше 1 триллиона долларов.

Я бы использовал:

[Range(0.0, 1000000000000)]

Или, если он вам действительно нужен, просто вставьте значение Decimal.MaxValue (без запятых): 79,228,162,514,264,337,593,543,950,335

Любое из этих будет хорошо работать, если вы не из Зимбабве.

19
ответ дан 23 November 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: