Ho un'app .NET che consente a un utente di scegliere la propria lingua & cultura (data/formattazione del numero). La loro impostazione cultura è memorizzata in Thread.CurrentThread.CurrentCulture
(anche Thread.CurrentThread.CurrentUICulture
, ma questo è un problema separato).Qual è il modo migliore per analizzare numeri localizzati da .NET/Razor in javascript?
Quando stampo un var via Razor, mostra in formato localizzato:
<span>@bignum</span> (renders as "123.456" or "123,456")
Tuttavia, ho anche bisogno di passare un po 'di .NET VAR di Javascript:
var js_bignum = @bignum;
Il problema è che Javascript in questo caso non capisce le versioni localizzate di questi numeri, quindi fallisce da quando la dichiarazione sopra diventa:
var js_bignum = 123,456;
Può essere dovuto al fatto che l'impostazione cultura del browser dell'utente è diversa dall'impostazione cultura dell'utente webapp. In ogni caso, è una situazione che dobbiamo essere in grado di gestire.
Quindi qual è il modo più semplice per gestire questo? Posso creare il mio Javascript ConvertToStandardNumberFormat()
che accetta un valore di stringa da .NET e restituisce un formato numerico "standard", ma sembra un po 'un trucco. Esiste un modo per forzare .NET/rasoio a rendere un numero di formato non localizzato?
var js_bignum = @price.ToUnlocalizedFormat(); (Is there something like this?)
Sto solo cercando di capire quali sono le migliori pratiche per questo tipo di situazione.
Grazie!
È possibile chiamare metodi dalle espressioni Razor? Perché questo è ciò che 'number.ToString (CultureInfo.InvariantCulture)' dovrebbe fare (sintassi del modulo Razor per l'importazione dei namespace giusti, ecc.). – millimoose