C# Web Api json响应$id变量

C# Web Api json响应$id变量,c#,asp.net-mvc,json,angularjs,asp.net-web-api,C#,Asp.net Mvc,Json,Angularjs,Asp.net Web Api,在asp web api中,我有一个响应ajax请求并发回json数据的控制器: public IEnumerable<PersonaleDTO> GetPersonale() { var n = (from p in db.Personale select new PersonaleDTO { Id = p.Id, Nome = p.Nome, Cognome = p.Cognome Cellulare = p.Cellulare, Email =

在asp web api中,我有一个响应ajax请求并发回json数据的控制器:

public IEnumerable<PersonaleDTO> GetPersonale()
{
    var n = (from p in db.Personale
             select new PersonaleDTO { Id = p.Id, Nome = p.Nome, Cognome = p.Cognome Cellulare = p.Cellulare, Email = p.Email, Attivo = (bool)p.Attivo }).ToList();
    return n;
}
public IEnumerable GetPersonale()
{
var n=(从数据库Personale中的p开始)
选择newpersonaledto{Id=p.Id,Nome=p.Nome,Cognome=p.cognomecellure=p.cellure,Email=p.Email,Attivo=(bool)p.Attivo}).ToList();
返回n;
}
这个方法返回七个对象,它是正确的

现在,当我收到json格式的数据时,我看到我也收到了$id成员以及id、Nome、Cognome


$id变量是什么?如何从json响应中删除此代码?

WebApiConfig

var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None;
编辑:如果出于某种原因,您正在使用自定义的ContractResolver,则按照此

自定义ContractResolver设置将覆盖PreserveReferencesHandling设置

在DefaultContractResolver/IContractResolver的实现中,添加以下内容:

public override JsonContract ResolveContract(Type type) {
    var contract = base.ResolveContract(type);
    contract.IsReference = false;
    return contract;
}
这与PreserveReferencesHandling.None设置类似,没有自定义ContractResolver。

他还问“什么是$id变量”。。。你有答案吗?