Wie die Verwendung eines bestimmten CultureInfo-in Asp.net Web-API

Ich habe vor kurzem Hinzugefügt, WEB-API für eine bestehende VS desktop-Anwendung und alles hat gut funktioniert, bis gestern, als ich hatte, um eine GET-Methode hat drei Parameter, einer von Ihnen ein Datum.
Gut, am Anfang dachte ich, dass ein Stück Kuchen, aber viel zu meiner überraschung bemerkte ich, dass, wenn ich schickte 2014/07/09 (9. Juli) auf dem server, wo die Anwendung installiert wurde, es wurde behandelt wie 2014/09/07 (7. September) und aus diesem Grund alle meine Vergleiche nie gearbeitet.

Habe ich versucht Dinge wie den Wechsel von einer GET-Methode an eine POST-Methode, die änderung meiner Einstellungen regions-und Sprachoptionen, um auf dem selben server, vorbei an dem Datum als String ein, erstellt ein Datetime-Objekt auf dem server mit der Teile der Zeichenfolge. Leider keiner von Ihnen arbeitete.

Dann erinnere ich mich daran, dass diese desktop-Anwendung haben sich einige Methoden auf Ihre WCF-Projekt (das hab ich jetzt vorbei um web-API), dass an Datteln kein problem. Suchen Sie im code für eine Weile fand ich, dass Sie so etwas auf jeden Klasse Sie WCF-Projekt, verwendet Termine:

Imports System.Globalization
Imports System.Security.Permissions
Imports System.Threading

Public Class ServicioRemotoVentas
    Implements IServicioRemotoVentas        
    Public Sub New()
        MyBase.New()
        Thread.CurrentThread.CurrentCulture = New CultureInfo("es-PE", False)
    End Sub

Sicherlich Thread.CurrentThread.CurrentCulture = New CultureInfo("es-PE", False), muss es für etwas.
Jetzt würde ich gerne wissen, wenn Sie verwendet haben, so etwas wie das Web-API vor? wenn ja, wie und wo haben Sie eine solche Konfiguration.

Diese sind die Einstellungen, die auf meinem pc :

Wie die Verwendung eines bestimmten CultureInfo-in Asp.net Web-API

Wie die Verwendung eines bestimmten CultureInfo-in Asp.net Web-API

Und dies sind die server Einstellungen:

Wie die Verwendung eines bestimmten CultureInfo-in Asp.net Web-API
Wie die Verwendung eines bestimmten CultureInfo-in Asp.net Web-API

Fast hätte ich vergessen zu erwähnen, dass ich alle übergeben die Daten mit diesem format yyyy/M/d mit all den anderen Parametern, die Verwendung von json.
Ist es vielleicht, dass, wenn der string deserialisiert wird in der Web-API geschieht dies über das system-Datum-format, weil ich noch nicht angeben, die Kultur-info zu nutzen?? oder vielleicht ist es auch eine Json-Fehler beim serialisieren/Deserialisieren der Daten??

Als immer, irgendwelche Tipps oder Ressourcen, die Sie zur Verfügung stellen könnte wäre sehr dankbar.

  • Bitte, versuchen Sie, dies zu Lesen stackoverflow.com/a/13550990/1679310, es könnte Ihnen einige Idee, wie man web.config ... vielleicht helfen könnte.
  • Danke, ich gebe es zu gehen, aber es sieht aus wie etwas mehr für asp.net MVC und mein problem ist mit Web-API
  • Diese Einstellung ist die Laufzeit-Einstellung, d.h. es spielt keine Rolle, wenn Asp.net, mvc, web api.. es ist die Art und Weise, wie zu sagen, was ist die Standard-Kultur, die auf einem server (und die Laufzeit wird sich um uns kümmern, um es auf einem beliebigen thread) oder wenn wir selbst verwenden die user-Kultur (nicht der guten Art und Weise in die web-api, wo wir die JSON verwenden... Kultur-unabhängigen format)
  • Danke es funktioniert wie ein Charme. Sorry für die nicht Vertrauen Sie von Anfang an. Es ist nur, dass ich hatte, sahen einige Seiten, die versucht, dies zu ändern, in der WebApiConfig.cs oder Global.asax, dass ich dachte, du hättest missverstanden, was ich beschrieben hatte, in meiner Frage. Also, vielen Dank und nochmals SORRY
InformationsquelleAutor eddy | 2014-07-11
Schreibe einen Kommentar