2017-02-18 5 views
-1

"Candidat"と "Experience"の2つのクラスが作成されました。私はすべての候補を検索するときに候補者が、私はこのコード循環参照付きのJSONシリアライゼーションが検出されました

public JsonResult ConsultantsList() 
    { 

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

     return Json(consultants, JsonRequestBehavior.AllowGet); 
    } 

をwrited多くの経験私のコントローラで

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; } 

を有していてもよく、問題は私が結果を受け取るブレークポイントを置くときですが、私の中にページに「型のオブジェクトを直列化している間に循環参照が検出されました」という問題があります。

これは、私は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つのプロパティのみを含む匿名オブジェクトのコレクションを作成することです(使用されていない場合でも、その余分なデータをすべてクライアントに送信する必要はありません) –

答えて

0

ExperienceからConsultantプロパティを削除するか、JsonIgnore属性を追加してください。

関連する問題