2013-10-15 19 views
6

Sto avendo un problema con la localizzazione. In Brasile, usiamo virgola come separatore decimale, invece di punto. Per esempio:Consenti punto e virgola nei numeri, non solo per i decimali

500,00 
120,21 
0,0001 

ho trovato la soluzione a questo problema sulla base di questa risposta: MVC 3 jQuery Validation/globalizing of number/decimal field

Ma qui in Brasile, abbiamo anche utilizzare "" in numeri, come:

100.000.000,00 
11.125,23 

E ancora una cosa:

10.000 <> 10,000 

Il primo è diecimila, e il secondo è semplicemente dieci.

Utilizzando il plugin globalizzazione, quando l'utente digita i "", mostra un errore di convalida. Ho provato ad utilizzare l'annotazione dei dati DisplayFormat, ma non ha funzionato come previsto ... per "risolvere" questo problema che sto usando javascript per impostare manualmente e rimuovere il "" dai numeri in campo, ma questo è molto problematico quando abbiamo bisogno di cambiare nulla (e sono sicuro che questo è uno degli approcci peggiori ho potuto usare ...). Voi ragazzi hanno alcuna idea di come procedere in questo caso?

Ancora una domanda: posso creare un modello di legante (o modificare quello esistente) di accettare questo formato numerico?

risposta

10

Ho appena trovato questa risposta.

Fixing binding to decimals

ha funzionato perfettamente nel mio scenario. Questo ragazzo ha risolto il problema esattamente lo stesso ho avuto!

ho dovuto modificare un paio di righe di codice, ma la parte più importante è stata questa linea:

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

ho modificato per accettare i valori Null.

Problemi correlati