Angular js JSON-Daten mit MVC-Modellbindung für DateTime?

8

Ich verwende Angular JS, um Daten als JSON auf meinen MVC 4-Controller zu übertragen. Alle meine Eigenschaften werden korrekt konvertiert, außer DateTime / DateTime? Arten. Ich würde gerne einen "set it and vergeude it" -Ansatz für die Behandlung von Daten haben, so dass neue Klassen und oder Eigenschaften, die hinzugefügt werden, nicht daran denken müssen, eine spezielle Konvertierung durchzuführen, um ein Datum richtig zu behandeln. Ich habe die folgenden Ansätze und mögliche Nachteile gesehen. Welchen Ansatz nutzen die Leute für die gleiche Plattform? Gibt es etwas in MVC4, das das richtig behandelt, das ich vielleicht nicht konfiguriert habe? Irgendwelche Vorschläge werden sehr geschätzt.

  1. Kundenspezifischer Modellbinder. Wie in Phil Haack Blog. Möglich Leistungsprobleme.
  2. Führen Sie einige Änderungen auf der JS-Seite durch. Wie in Robert Koritniks Blog beschrieben. Das scheint bei angular js nicht zu funktionieren, vielleicht gibt es eine Einstellung in $ http.post, die das funktionieren lässt, aber mein Objekt hat bei diesem Ansatz alle Nullwerte.
  3. Verfügen Sie über zusätzliche Eigenschaften wie FormatedDateTime, die für die POST-Aktion konvertiert werden können. Dies ist kein "set it and hold it approach", obwohl es die korrekte Anzeige von Daten auf der Client-Seite ermöglicht, die sich noch im Format "/ Date (695573315098) /" befinden

Siehe das folgende Codebeispiel. C # -Klasse:

%Vor%

Angular JS Controller:

%Vor%

Fiddlers POST:

  

HTTP / 1.1 200 OK Cache-Kontrolle: privat Content-Type: application / json;   charset = utf-8 Server: Microsoft-IIS / 8.0 X-AspNetMvc-Version: 4.0   X-AspNet-Version: 4.0.30319 X-Source-Dateien:   =? UTF-8? B? YzpcdXNlcnNcbmlja1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXFZhbGlkYXRpb25UZXN0XEhvbWVcR2V0UGVyc29uXDE =? =   X-Powered-By: ASP.NET Datum: Mi, 16 Jan 2013 14:48:34 GMT   Inhaltslänge: 124

     

{"Vorname": "Bob", "Nachname": "Smith", "Geburtsdatum": "/ Datum (695573315098) /", "ApprovedForSomething": "/ Datum (1358261315098) /"}

Wie Sie anhand der Fiddler-Daten sehen können, wird das Datum als JSON-Datum angezeigt. Wenn Sie jedoch die POST-Methode aufrufen, ist die DateTime-Eigenschaft nicht korrekt und die DateTime-Eigenschaft ist nicht korrekt. Eigenschaft ist null.

    
likestoski 16.01.2013, 15:06
quelle

1 Antwort

3

Haben Sie die Möglichkeit, Ihr AJAX-Postback von einem WebApi ApiController anstelle eines MVC-Controllers zu übernehmen?

Ich bin kürzlich auf dieses Problem gestoßen und habe die Unterstützung des ApiControllers für das ISO 8601-Datumsformat genutzt.

Hier ein paar Infos: Ссылка

    
Sambo 18.12.2013, 14:32
quelle