asp mvc 5中的JSON循环引用

时间:2015-03-17 03:35:58

标签: c# json asp.net-mvc-5

我收到循环参考序列化错误,无法加载结果...状态为500。

我尝试使用数据库中的选项创建动态下拉列表,并使用js附加选项。

那些是我的班级:

public class IdentificacionViewModel
{ public virtual Causas Causas { get; set; }
  public virtual Identificacion Idententificacion { get; set; }
} 


public partial class Causas
{ 


    public int Id { get; set; }
    public string Causa { get; set; }
    public string Agente { get; set; }
    public Nullable<int> Id_Subproceso { get; set; }
    public Nullable<int> Id_identificacion { get; set; }

    public virtual Identificacion Identificacion { get; set; }
    public virtual Subprocesos Subprocesos { get; set; }
}

public Identificacion()
    {
        this.Causas = new HashSet<Causas>();
    }

    public int Id { get; set; }
    public string Nombre { get; set; }
    public Nullable<int> Id_Servicio { get; set; }
    public string Etapa { get; set; }
    public string Riesgo { get; set; }
    public string EfectoProb { get; set; }

    public virtual ICollection<Causas> Causas { get; set; }
    public virtual Servicios Servicios { get; set; }
    public virtual Impacto Impacto { get; set; }
}

我的控制器是:

public ActionResult GetA()
    {
        var category = db.Causas.ToList();
         return Json(category, JsonRequestBehavior.AllowGet);
    }

我不知道可能是什么问题,感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

通过将Causas属性设置为非虚拟

,可以关闭Laus的Causas集合加载
public ICollection<Causas> Causas { get; set; }

使用预先加载

仍然可以加载Causas集合
 var Identification = context.Identificacion
                   .Include(b => b.Causas) 
                   .ToList();