Tengo una aplicación .NET que permite a un usuario elegir su propio idioma & cultura (formato de fecha/número). Su configuración de cultura se almacena en Thread.CurrentThread.CurrentCulture
(también Thread.CurrentThread.CurrentUICulture
, pero eso es un problema aparte).¿Cuál es la mejor manera de analizar los números localizados de .NET/Razor en javascript?
Al imprimir un var a través de la maquinilla de afeitar, que muestra en formato localizada:
<span>@bignum</span> (renders as "123.456" or "123,456")
Sin embargo, también necesito pasar algún .NET VARs Javascript:
var js_bignum = @bignum;
El problema es que Javascript en este caso no comprende las versiones localizadas de estos números, por lo que falla ya que la instrucción anterior se convierte en:
var js_bignum = 123,456;
Puede ser porque la configuración de la cultura del navegador del usuario es diferente de la configuración de la cultura de la aplicación web del usuario. En cualquier caso, es una situación que debemos ser capaces de manejar.
Entonces, ¿cuál es la forma más fácil de manejar esto? Puedo crear mi propio Javascript ConvertToStandardNumberFormat()
que toma un valor de cadena de .NET y devuelve un formato de número "estándar", pero parece un truco. ¿Hay alguna manera de forzar .NET/razor para generar un número de formato no localizado?
var js_bignum = @price.ToUnlocalizedFormat(); (Is there something like this?)
Estoy tratando de descubrir cuáles son las mejores prácticas para este tipo de situación.
Gracias!
¿Puede llamar métodos de expresiones Razor en absoluto? Porque esto es lo que 'number.ToString (CultureInfo.InvariantCulture)' debería hacer (modulo Razor sintaxis para importar los espacios de nombres correctos, etc.). – millimoose