Я хотел бы указать, что десятичное поле за цену должно быть> = 0, но я действительно не хочу налагать макс. значение.
Вот то, что я имею до сих пор... Я не уверен, каково корректный способ сделать это.
[Range(typeof(decimal), "0", "??"] public decimal Price { get; set; }
Кажется, нет другого выбора, кроме как ввести максимальное значение вручную. Я надеялся, что произошла какая-то перегрузка, в которой вам не нужно было ее указывать.
[Range(typeof(decimal), "0", "79228162514264337593543950335")]
public decimal Price { get; set; }
Как насчет чего-то вроде этого:
[Range(0.0, Double.MaxValue)]
Это должно делать то, что вы ищете, и вы можете избежать использования строк.
Я бы поставил decimal.MaxValue.ToString ()
, поскольку это эффективный потолок для десятичного типа эквивалентен отсутствию верхней границы.
Если вы работаете с ценами, я уверен, что вы можете смело предположить, что ничто не будет стоить больше 1 триллиона долларов.
Я бы использовал:
[Range(0.0, 1000000000000)]
Или, если он вам действительно нужен, просто вставьте значение Decimal.MaxValue
(без запятых): 79,228,162,514,264,337,593,543,950,335
Любое из этих будет хорошо работать, если вы не из Зимбабве.