2013-10-15 9 views
6

ローカリゼーションに問題があります。ブラジルでは、ドットの代わりにコンマを小数点の区切り記号として使用します。たとえば:10進数だけでなく、ドットとカンマを数字で入力できます

500,00 
120,21 
0,0001 

私がこの回答に基づいて、この問題に対する解決策が見つかりました:MVC 3 jQuery Validation/globalizing of number/decimal field

をしかし、ここブラジルで、我々はまた、使用します「」数字で、同じよう:

100.000.000,00 
11.125,23 

そしてもう一つ:

10.000 <> 10,000 

最初のものは1万であり、第二は、単に10です。

グローバリゼーションプラグインを使用すると、ユーザーが "。"を入力すると、検証エラーが表示されます。 データアノテーションDisplayFormatを使用しようとしましたが、期待通りに機能しませんでした... この問題を解決するにはjavascriptを使用して手動で "。"フィールド上の数字から、しかしこれは私たちが何かを変更する必要があるときには非常に問題です(そして、これは私が使用できる最悪のアプローチの一つだと確信しています...)。あなたはこのケースでどのように進めるべきかについて考えていますか?

もう1つ質問:私はモデルバインダーを作成(または既存のものを変更)してこの数値フォーマットを受け入れることができますか?

答えて

10

この回答が見つかりました。

Fixing binding to decimals

それは私のシナリオでは完全に働きました。この男はまったく同じ問題を解決しました!

私は数行のコードを変更していたが、最も重要な部分は、この行だった:

ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder()); 

私がNULL可能値を受け入れるためにそれを修正しました。