【发布时间】:2017-09-12 01:03:00
【问题描述】:
给出课程:
public class Parent
{
public int id {get; set;}
public int name {get; set;}
public virtual ICollection<Child> children {get; set;}
}
[Table("Child")]
public partial class Child
{
[Key]
public int id {get; set;}
public string name { get; set; }
[NotMapped]
public string nickName { get; set; }
}
以及控制器代码:
List<Parent> parents = parentRepository.Get();
return Json(parents);
它可以在 LOCALHOST 上运行,但它不能在实时服务器上运行:
错误:Json 序列化类型对象时检测到循环引用
我搜索了一下,发现[ScriptIgnore]属性,所以我把模型改成
using System.Web.Script.Serialization;
public class Parent
{
public int id {get; set;}
public int name {get; set;}
[ScriptIgnore]
public virtual ICollection<Child> children {get; set;}
}
但是在live server (win2008)上也会出现同样的错误。
如何避免该错误并成功序列化父数据?
【问题讨论】:
-
Child看起来像什么?它是否有对Parent的反向引用?如果是这样,将ScriptIgnore添加到反向引用可能更有意义。