Ich hatte ein Problem mit meiner .NET Core API wo, wenn DateTimes serialisiert wurden, würde es Millisekunden lassen, wenn der Wert 0 war. This Frage erläutert das Problem. Ich fügte hinzu, Startup-Klasse die folgenden meiner .NET-Core und es löste das Problem, dass, wenn ich ein GET
tat, alle Daten korrekt formatiert werden würde:IsoDateTimeConverter hinzugefügt zu .NET API bricht Standardmodellbindung
services.AddMvc()
.AddJsonOptions(options =>
{
var settings = options.SerializerSettings;
var dateConverter = new IsoDateTimeConverter
{
DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff"
};
settings.Converters.Add(dateConverter);
});
Nach der Implementierung dieses fand ich, dass es Standard-Modell Bindungen brach anderswo. Zum Beispiel habe ich einen POST
Endpunkt, den das folgende Ansichtsmodell akzeptiert:
public class PatientRegistrationViewModel
{
public DateTime DateOfBirth { get; set; }
}
Früher vorging ich die folgenden JSON-Daten in der Anforderungs Stelle, die sie erfolgreich gebunden:
{
dateOfBirth: '1981-04-18'
}
Nach der Implementierung des Datums-Wandlers oben ist das Viewmodel in meinem Controller gleich null.
Hast du vielleicht nur vergessen, die ' 'Z'' am Ende der' DateTimeFormat' String? – haindl
@haindl Leider, die es nicht taten. – im1dermike