Mam aplikację .NET, która pozwala użytkownikowi wybrać język w swoim języku & kultura (formatowanie daty/liczby). Ich ustawienie kultury jest przechowywane w Thread.CurrentThread.CurrentCulture
(również Thread.CurrentThread.CurrentUICulture
, ale jest to oddzielny problem).Jaki jest najlepszy sposób na sparsowanie zlokalizowanych liczb z .NET/Razor w javascript?
Kiedy wydrukować var przez Razor, to widać w formacie zlokalizowanej:
<span>@bignum</span> (renders as "123.456" or "123,456")
Jednak również trzeba przekazać jakąś .NET vars do javascript:
var js_bignum = @bignum;
Problemem jest to, JavaScript w tym przypadku nie rozumie zlokalizowanych wersji tych liczb, więc nie powiedzie się, ponieważ powyższe stwierdzenie staje się:
var js_bignum = 123,456;
Może to wynikać z tego, że ustawienia kulturowe przeglądarki użytkownika różnią się od ustawień kultury internetowej użytkownika. W każdym razie jest to sytuacja, z którą musimy sobie poradzić.
Jaki jest najłatwiejszy sposób na poradzenie sobie z tym? Mogę utworzyć własny skrypt JavaScript ConvertToStandardNumberFormat()
, który pobiera wartość ciągu z .NET i zwraca "standardowy" format liczbowy, ale wydaje się to być trochę hackerem. Czy istnieje sposób na wymuszenie .NET/maszynki do golenia w celu renderowania nie zlokalizowanego numeru formatu?
var js_bignum = @price.ToUnlocalizedFormat(); (Is there something like this?)
Po prostu staram się dowiedzieć, jakie najlepsze praktyki są dla tego typu sytuacji.
Dzięki!
Czy możesz w ogóle wywoływać metody z wyrażeń żyletkowych? Ponieważ właśnie to powinno robić 'number.ToString (CultureInfo.InvariantCulture) (modulo Razor, aby zaimportować właściwe przestrzenie nazw itp.). – millimoose