我想指定一个价格的十进制字段必须是>= 0,但我真的不想强加一个最大值。

这是我目前所做的…我不知道正确的做法是什么。

[Range(typeof(decimal), "0", "??"] public decimal Price { get; set; }

当前回答

你可以使用:

[Min(0)]

这将强制要求的最小值为0(零),而没有最大值。

你需要DataAnnotationsExtensions来使用它。

其他回答

你可以使用:

[Min(0)]

这将强制要求的最小值为0(零),而没有最大值。

你需要DataAnnotationsExtensions来使用它。

使用Range

[Range(typeof(Decimal), "0", "9999", ErrorMessage = "{0} must be a decimal/number between {1} and {2}.")]

[Range(typeof(Decimal),"0.0", "1000000000000000000"]

希望对大家有所帮助

我将写入decimal.MaxValue.ToString(),因为这是十进制类型的有效上限,它相当于没有上限。

[范围(0.01,100000000,ErrorMessage = "价格必须大于零!")]

如果你担心字符串看起来好看,你可以这样做:

    [Range(0, Double.PositiveInfinity)]

这将有一个默认的错误消息:

字段SuchAndSuch必须在0到无穷大之间。