Ciao,
galbori ha scritto:
il carattere che viene interpretato come separatore decimale, è quello impostato sul server ASP
Per brevità diciamo di sì, ma ASP.NET ti consente impostare una
Culture diversa per ogni richiesta di pagina, così da accomodare le abitudini dei vari utenti.
Per "Culture" si intende l'insieme delle convenzioni in uso in un dato paese.
La Culture it-IT, per esempio, prevede che il separatore dei decimali sia la virgola, mentre per la Culture en-US il punto.
Al momento, penso che nella tua applicazione tu stia usando sempre la Culture it-IT che ovviamente non è adeguata per l'utente statunitense. Per cambiare dinamicamente la Culture, ti basta aprire il web.config e inserire il nodo <globalization> dentro <system.web> (se ce l'hai già, aggiornalo come segue):
<globalization uiCulture="auto" culture="auto" />
In questo modo ASP.NET imposterà la Culture appropriata per l'utente senza che tu debba far nulla. Riesce a farlo accuratamente nella maggior parte dei casi perché i browser, quando inviano una richiesta al server, indicano sempre qual è la lingua preferita dall'utente (intestazione Accept-Language).
A questo punto, quando lato server usi dei metodi tipo Parse, verrà tenuta in considerazione la Culture impostata da ASP.NET e l'errore dovrebbe sparire.
var valore = Decimal.Parse(casellaNumerica.Text);
Qui c'è un'altra discussione sull'argomento:
http://forum.aspitalia.com/forum/post/410054/Data-Inserita-PC-S.O.-Inglese.aspxE qui trovi la documentazione sulla
globalizzazione delle applicazioni ASP.NET.
ciao,
Moreno
Modificato da BrightSoul il 30 dicembre 2015 15.24 -