Web Api json response $id variable

angularjs, asp.net-mvc, asp.net-web-api, c#, json

Solution

Try this code in `WebApiConfig`

var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None;

Edit : If for some reason you're using a custom ContractResolver then as per this post

The custom ContractResolver setting overrides the PreserveReferencesHandling setting.

In your implementation of DefaultContractResolver/IContractResolver, add this;

public override JsonContract ResolveContract(Type type) {
    var contract = base.ResolveContract(type);
    contract.IsReference = false;
    return contract;
}

This behaves similarly to the PreserveReferencesHandling.None setting without a custom ContractResolver.

Problem

in asp web api i have this controller that respond to ajax request and send back json data: ``` 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; } ``` This method return seven object and it's correct. Now when i receive back the data in the json format i see that i receive also and $id member along with the id, Nome, Cognome... What is the $id variable? How can remove this from the json response?

Original source

Related problems