1

次のクラスでは

using System;

namespace Beverati.Repository.ViewModel
{

[Serializable]
public class CollectionItem : EditableEntityBase
{

public CollectionItem() {}

private int? _quantity;
private string _retailValue;
private string _currencyName;

public int? quantity
{
  get { return this._quantity ?? NULL_INTEGER; }
  set { this._quantity = value; }
}

public string retailValue
{
  get { return this._retailValue ?? String.Empty; }
  set { this._retailValue = value; }
}

public string currencyName
{
  get { return this._currencyName ?? String.Empty; }
  set { this._currencyName = value; }
}

}
}

このコントローラ アクションで返される

public IEnumerable<Repository.ViewModel.CollectionItem> GetAll()

この JSON 出力を MVC2 で生成し、このような JSON 出力を生成します

{
  quantity:2
  retailValue: 50.00
  currencyName: USD
}

ただし、MVC4 をインストールすると、返される JSON は次のようになります

{
  _quantity:2
  _retailValue: 50.00
  _currencyName: USD
}

すべてのプロパティ名にはアンダースコア プレフィックスが付きます。アンダースコアが使用されているのはなぜですか? JSON でパブリック プロパティ名を返すにはどうすればよいですか?

4

1 に答える 1

2

[Serializable] 属性はそれを行っているものです-別の目的でそれを必要としないと仮定して-属性を削除すると、すべてがうまくいくはずです。

于 2012-12-27T23:02:39.603 に答える