2013-10-15 14 views
6

Ich habe ein Problem mit der Lokalisierung. In Brasilien verwenden wir Komma als Dezimaltrennzeichen anstelle von Punkt. Zum Beispiel:Erlaube Punkt und Komma in Zahlen, nicht nur für dezimal

500,00 
120,21 
0,0001 

fand ich die Lösung dieses Problems auf der Grundlage dieser Antwort: „“ MVC 3 jQuery Validation/globalizing of number/decimal field

Aber hier in Brasilien haben wir auch verwenden in Zahlen, wie:

100.000.000,00 
11.125,23 

Und noch eins:

10.000 <> 10,000 

Die erste ist zehntausend, und das zweite ist einfach zehn.

Mit dem Globalisierungs-Plugin zeigt der Benutzer bei der Eingabe des "." Einen Validierungsfehler an. Ich habe versucht, mit der Datenannotation DisplayFormat, aber es hat nicht wie erwartet funktioniert ... Um diese Probleme "zu lösen" Ich benutze Javascript, um manuell einzustellen und zu entfernen "." von den Zahlen auf dem Feld, aber das ist sehr problematisch, wenn wir etwas ändern müssen (und ich bin sicher, dass dies einer der schlechtesten Ansätze ist, die ich verwenden könnte ...). Weißt du, wie es in diesem Fall weitergeht?

Eine weitere Frage: Ich kann ein Modellbinder erstellen (oder den vorhandenen ändern), um dieses Zahlenformat zu akzeptieren?

Antwort

10

Ich habe gerade diese Antwort gefunden.

Fixing binding to decimals

Es funktionierte perfekt in mein Szenario. Dieser Typ hat das genau gleiche Problem gelöst, das ich hatte!

Ich hatte nur ein paar Zeilen Code ändern, aber der wichtigste Teil war diese Linie:

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

ich es auf NULL festlegbare Werte akzeptieren geändert.

Verwandte Themen