Je viens d'échanger notre projet de ASP .Net Core 1.0.0-rc2-final à 1.0.0. Notre site Web et notre client ont cessé de fonctionner en raison de la capitalisation des propriétés JSON. Par exemple, cette ligne de JavaScript échoue maintenant
for (var i = 0; i < collection.Items.length; i++){
parce que le contrôleur appelle maintenant le tableau "items" au lieu de "items". Je n'ai apporté aucune modification après l'installation des packages mis à jour et la modification du fichier project.json. Je n'ai pas changé les fichiers de modèle C # qui capitalisent toujours leurs propriétés.
Pourquoi les contrôleurs ASP.Net Core ont-ils commencé à renvoyer du JSON avec des propriétés de cas inférieur? Comment puis-je y revenir en respectant le cas des noms de propriété du modèle?
MVC sérialise maintenant JSON avec les noms de cas de chameaux par défaut
Utilisez ce code pour éviter les noms de cas de chameaux par défaut
services.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
voir l'annonce à ce sujet ici https://github.com/aspnet/Announcements/issues/194
vous pouvez changer le comportement comme ceci:
services
.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
Pour ceux qui utilisent ASP.net WEB API (plutôt que ASP.NET Core).
Ajoutez cette ligne à votre WebApiConfig.
//Comment this jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
jsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
En ajoutant ceci comme une réponse ici parce que cela vient en premier dans la recherche Google pour les API Web.