2017-06-07 6 views
0

J'ai un problème très frustrant dans une application Web simple que je construis.Safari affiche la virgule avec la virgule

Cela fonctionne très bien dans chrome et firefox, mais lors de l'utilisation de l'application dans Safari sur un ipad (où il sera utilisé en live) les données ne sont pas formatées correctement. Par exemple, les données récupérées utilisent définitivement un point (.) comme séparateur décimal et apparaissent comme telles dans firefox/chrome.

Cependant, lors de la visualisation des données dans Safari, il apparaît sous la forme d'une virgule (,) et cela gâche mes insertions de base de données.

J'ai essayé de changer de région et de langue au Royaume-Uni mais sans effet.

Voilà comment j'afficher une des décimales en question:

@Html.LabelFor(model => model.MassOff, new { @class = "viewFieldLabel" }) <br /> 
@Html.DisplayFor(model => model.MassOff) 

Mais il est encore pire que cela, comme je l'affichage aussi décimales ailleurs dans un WebGrid, qui se remplit automatiquement en fonction des propriétés de classe, donc je ne le dis jamais explicitement pour afficher la décimale. Cependant, il apparaît toujours avec une virgule dans le WebGrid donc je n'ai aucune idée de comment je vais changer cela ...

Pourquoi Safari le ferait automatiquement, alors que je ne lui ai jamais demandé de convertir les formats ? Dois-je maintenant essayer manuellement de trouver toutes ces valeurs et les changer en utilisant JQuery (ce qui semble absolument ridicule), ou y a-t-il un paramètre que je peux changer sur l'ipad ou la propriété que j'ai besoin d'inclure dans mon code?

Mise à jour

j'ai réussi à corriger la façon dont les décimales sont affichées avec un

[DisplayFormat(DataFormatString = "{0:0.###}")] 

Au-dessus des propriétés en question. Toutefois, lors de la soumission des données, il est toujours envoyé avec une virgule (,), il semble donc que cela ne change que la façon dont il est affiché.

Répondre

1

Il semble que vous ayez des navigator.language différents sur votre Safari et les autres navigateurs.

S'il vous plaît voir dans ce sujet: Best way to determine user's locale within browser

Si vous pouvez mettre un script côté serveur quelque part ailleurs sur le net qui lit simplement l'en-tête Accept-Language et le rejette comme un JavaScript fichier avec la valeur d'en-tête dans la chaîne, par exemple .:

var acceptLanguage= 'en-gb,en;q=0.7,de;q=0.3; 

alors vous pouvez inclure un pointage à ce service externe dans le code HTML et JavaScript utiliser pour analyser le languag En-tête Je ne connais pas de code de bibliothèque pour ce faire, car l'analyse Accept-Language est presque toujours effectuée côté serveur. Merci pour votre réponse, mais je ne sais pas ce que cela signifie.

+0

Dois-je maintenant configurer un deuxième serveur et exécuter un service à partir de là? Cela semble complètement ridicule. Je ne peux pas simplement changer ce 'navigator.language' dans le safari lui-même? – Bassie