Ich habe gerade unser Projekt von ASP .Net Core 1.0.0-rc2-final auf 1.0.0 getauscht. Unsere Website und unser Kunde haben aufgrund der Aktivierung von JSON-Immobilien ihre Arbeit eingestellt. Beispielsweise schlägt diese JavaScript-Zeile jetzt fehl
for (var i = 0; i < collection.Items.length; i++){
weil der Controller jetzt das Array "items" anstelle von "Items" aufruft. Ich habe keine Änderungen vorgenommen, außer die aktualisierten Pakete zu installieren und die Datei project.json zu bearbeiten. Ich habe die C # -Modelldateien nicht geändert, die ihre Eigenschaften noch groß schreiben.
Warum geben die ASP.Net Core-Controller JSON mit Eigenschaften in niedrigeren Fällen zurück? Wie gehe ich zu ihnen zurück, um den Fall der Eigenschaftsnamen aus dem Modell zu berücksichtigen?
c#
asp.net-core
asp.net-core-1.0
Dumbledad
quelle
quelle
Antworten:
MVC serialisiert JSON jetzt standardmäßig mit Kamelfallnamen
Verwenden Sie diesen Code, um standardmäßig Kamelfallnamen zu vermeiden
Quelle: https://github.com/aspnet/Announcements/issues/194
quelle
Json()
Aufrufs die richtigen Serialisierungseinstellungen bereit ?Falls Sie dies von Google gefunden haben und nach einer Lösung für Core 3 suchen.
Core 3 verwendet
System.Text.Json
, wodurch der Fall standardmäßig nicht erhalten bleibt. Wie bei diesem GitHub-Problem erwähnt ,PropertyNamingPolicy
wird das Problem durch Setzen von null behoben.und wenn Sie die globalen Einstellungen nicht ändern möchten, ist dies nur für eine Aktion wie folgt:
quelle
Sie können das Verhalten folgendermaßen ändern:
Siehe die Ankündigung hier: https://github.com/aspnet/Announcements/issues/194
quelle
Für diejenigen, die auf Core 3.1 migriert sind und über ein Core MVC-Projekt verfügen, kann der folgende Setup-Code in Startup.cs verwendet werden:
quelle
Dadurch wird das Problem in dotnet core 3 webapi behoben, sodass Ihre Eigenschaftsnamen überhaupt nicht geändert werden und Sie genau das an Ihren Client zurückgeben, was Sie beabsichtigt haben.
In Startup.cs:
quelle
Für jemanden, der die ASP.net WEB API verwendet (anstelle von ASP.NET Core).
Fügen Sie diese Zeile in Ihre WebApiConfig ein.
Fügen Sie dies hier als Antwort hinzu, da dies auch bei der Google-Suche nach Web-API an erster Stelle steht.
quelle
Bei Core 2.x-Versionen können Sie mit diesem Code standardmäßig Kamelfallnamen vermeiden. Sie müssen den folgenden Code in die ConfigureServices-Methode der Datei Startup.cs einfügen.
quelle