在以下课程中
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()
使用MVC2生成此JSON输出JSON输出,如此
{
quantity:2
retailValue: 50.00
currencyName: USD
}
但是,当我安装MVC4时,返回的JSON看起来像这样
{
_quantity:2
_retailValue: 50.00
_currencyName: USD
}
所有属性名称都有下划线前缀。为什么要使用下划线以及如何在JSON中返回公共属性名称?
答案 0 :(得分:2)
[Serializable]属性正在做什么 - 假设你不需要它用于其他目的 - 删除属性,一切都应该很好。