プロジェクトをASP .Net Core 1.0.0-rc2-finalから1.0.0に変更しました。 JSONプロパティが大文字になっているため、当社のWebサイトとクライアントは動作を停止しました。たとえば、このJavaScript行は失敗します
for (var i = 0; i < collection.Items.length; i++){
これは、コントローラーが「アイテム」ではなく「アイテム」配列を呼び出すようになったためです。更新されたパッケージをインストールし、project.jsonファイルを編集する以外に変更は加えていません。プロパティを大文字にしたままのC#モデルファイルは変更していません。
ASP.Net Coreコントローラーが小文字のプロパティでJSONを返し始めたのはなぜですか?モデルのプロパティ名の大文字と小文字を尊重して、それらに戻るにはどうすればよいですか?
MVCはデフォルトでキャメルケース名でJSONをシリアル化します
このコードを使用して、デフォルトでラクダケース名を回避します
services.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
次のように動作を変更できます。
services
.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
こちらの発表をご覧ください: https://github.com/aspnet/Announcements/issues/194
(ASP.NET Coreではなく)ASP.net WEB APIを使用している人向け。
WebApiConfigにこの行を追加します。
//Comment this jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
jsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
これを答えとしてここに追加すると、これはWeb APIのGoogle検索でも最初に表示されるためです。