检测到循环参考的JSON序列化

问题描述:

我创建了两个类“Candidat”和“Experience”。考生可以有许多经验检测到循环参考的JSON序列化

public class Consultant 
{ 
    public int ConsultantID { get; set; } 
    public string ConsultantNom { get; set; } 
    public string ConsultantPrenom { get; set; } 
    public string ConsultantTitre { get; set; } 
    public Disponibilite ConsultantDisponibilite { get; set; } 
    public virtual ICollection<Experience> Experiences { get; set; } 

} 

public class Experience 
{ 
    public int ExperienceID { get; set; } 
    public virtual Consultant Consultant { get; set; } 
    public int ConsultantID { get; set; } 
    public string ExperienceNomSociete { get; set; } 
    public string ExperiencePoste { get; set; } 
    public DateTime ExperienceDebut { get; set; } 
    public DateTime ExperienceFin { get; set; } 
    public string ExperienceCompetences { get; set; } 

在我的控制器,当我搜索的所有候选人我所著的代码

public JsonResult ConsultantsList() 
    { 

     var consultants = from c in _consultantRepository.getConsultants() 
          select c; 

     return Json(consultants, JsonRequestBehavior.AllowGet); 
    } 

问题是,当我把一个破发点我收到的结果,但在我页面存在问题“在序列化类型为”的对象时检测到循环引用“。

我这是怎么分析数据使用jQuery:

function PopulateConsultantList() { 
     $.ajax({ 
      type: "GET", 
      url: "/Consultants/ConsultantsList", 
      success: function (data) { 
       console.log(data); 
       var json = $.parseJSON(JSON.stringify(data)); 
       console.log(json); 
       var corpsTR = ''; 
       $.each(json, function (i, item) { 
        corpsTR += '<tr><td>' + item.ConsultantPrenom + " " + item.ConsultantNom + '</td>' 
         + '<td>' + item.ConsultantTitre + '</td>' 
         + '<td>Immédiate</td>' 
         + '<td><a href="/Consultants/Details/' + item.ConsultantID + '" class="btn btn-default btn-icon"><i class="fa fa-file-text-o"></i></a>&nbsp;<a href="/Consultants/Delete/' + item.ConsultantID + '" class="btn btn-danger btn-icon"><i class="fa fa-trash-o"></i></a></td></tr>'; 
       }); 
       $("tbody").append(corpsTR); 
      } 
     }); 
    } 

PS:当经验是空的,没有任何问题发出。 谢谢

+0

你只需要4个属性来创建一个只包含这4个属性的匿名对象集合(当它甚至没有使用时,没有意思将所有额外的数据发送到客户端) –

从体验中移除Consultant属性,或向其添加JsonIgnore属性。