2

私はさまざまな言語の Web サイトを持っています。モデル内には、次のメンバー宣言があります。

[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 の有効な値ではありません。

ru-RUカルチャ情報と UI を維持しながら、すべての小数点をコンマ (,) ではなくピリオド (.) にするにはどうすればよいですか?

これが私が試したことです:

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はランタイム カルチャを使用して変換されるため、この問題に対する正確な回避策はありません。double を使用して精度の損失を受け入れる必要があります。

[Range(0.01, 10000)]

RangeAttributeまたは完全に使用することをあきらめます。

このリンクを参照してください。

于 2013-11-12T17:47:42.407 に答える