120,12 von HTTP-Anforderung wird in Doppelmodell 12012 konvertiert. Ich las, dass ASP.NET MVC solche Dinge behandeln sollte, aber ich konnte es nichtKomma-Dezimaltrennzeichen wird von ASP.NET MVC-Modellbinder ignoriert
Anfrage funktioniert:
Accept-Language:da,en;q=0.8,ru;q=0.6,en-US;q=0.4
...
Price: "120,12"
Aktionsmethode‘Modell enthält: public double Price { get; set; }
Innen Aktion:
var uICulture = Thread.CurrentThread.CurrentUICulture; // {da}
var culture = Thread.CurrentThread.CurrentCulture; // {da-DK}
Die Lokalisierung wird in Global.asax
innerhalb Application_AcquireRequestState
:
var cultureInfo = new CultureInfo("da");
Thread.CurrentThread.CurrentUICulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureInfo.Name);
Vielen Dank im Voraus für jede Hilfe!
'double.Parse (" 120,12 ", neues System.Globalization.CultureInfo (" da "))' gibt 120.12 zurück. Anstatt zu versuchen, das Gebietsschema mit 'AcquireRequestState' hart zu codieren, sollten Sie versuchen, herauszufinden, was falsch ist - vielleicht verwendet web.config eine bestimmte Kultur? Gibt es eine Richtlinie zur Ansicht? Der Versuch, ein Gebietsschema bei verschiedenen Einstellungen zu nageln, führt normalerweise zu mehr Verwirrung und Fehlern –
Danke für Ihren Kommentar. In diesem Projekt wird AcquireRequestState verwendet, um das Gebietsschema nach den Wünschen des Benutzers einzurichten - ich habe es einfach für die Frage als fest codiertes Gebietsschema vereinfacht. –