2

我有一个不同语言的网站。在模型内部,我有以下成员声明:

[Required(ErrorMessageResourceType = typeof(ViewRes.GlobalResource), ErrorMessageResourceName = "awr1")]
[Range(typeof(decimal), "0.00100001", "10000", ErrorMessageResourceType = typeof(ViewRes.GlobalResource), ErrorMessageResourceName = "TotalMoneyMinMaxValidation")]
public decimal TotalMoney { get; set; }

当我将 UI 文化更改为 时ru-RU,我收到以下错误:

0.00100001 不是 Decimal 的有效值。

如何保持我的文化信息和 UI 不变,ru-RU但所有小数都是句点(.)而不是逗号(,)?

这是我尝试过的:

CultureInfo ci = new CultureInfo("ru-RU");
ci.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentUICulture = ci;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);

不工作...

4

1 回答 1

1

RangeAttribute由于是使用运行时区域性转换的,因此没有针对此问题的精确解决方法。您需要接受使用双精度的精度损失:

[Range(0.01, 10000)]

或完全放弃使用RangeAttribute

请参阅此链接

于 2013-11-12T17:47:42.407 回答