1. ホーム
  2. c#

[解決済み] ASP .Net Core 1.0.0-rc2-final から 1.0.0 への移行に伴い、JSON プロパティを小文字に変更しました。

2022-08-19 18:42:52

質問

ASP .Net Core 1.0.0-rc2-final から 1.0.0 にプロジェクトを入れ替えたところです。私たちの Web サイトとクライアントは、JSON プロパティの大文字入力のために動作しなくなりました。たとえば、JavaScript のこの行は現在失敗します。

for (var i = 0; i < collection.Items.length; i++){

というのは、コントローラが "Items" ではなく、配列 "items" を呼び出すようになったからです。更新されたパッケージをインストールし、project.json ファイルを編集する以上の変更はしていません。C# モデルファイルは変更しておらず、プロパティは大文字のままです。

なぜ ASP.Net Core コントローラーは、小文字のプロパティで JSON を返すようになったのでしょうか。モデルからのプロパティ名の大文字と小文字を区別するように戻すにはどうしたらよいでしょうか。

どのように解決するのですか?

MVC はデフォルトでキャメルケースの名前で JSON をシリアライズするようになった

デフォルトでキャメルケースの名前を使用しないようにするには、このコードを使用します。

  services.AddMvc()
        .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());

出典 https://github.com/aspnet/Announcements/issues/194