使用JSON.Net“检测到自我引用循环”异常
我有一些代码将一个Route
对象列表发送到我的View(ASP.Net MVC):
public ActionResult getRouteFromPart(int partId){ List<Route> routes = _routeService.GetRouteByPartType(partId); if (routes == null) { return this.AdvancedJsonResult(null, JsonRequestBehavior.AllowGet); } return this.AdvancedJsonResult(new { Routes = routes }, JsonRequestBehavior.AllowGet);}
但我在AdvancedJsonResult
班上得到一个例外:
if (Data != null){ var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; string result = JsonConvert.SerializeObject(this.Data, this.Formatting, settings); response.Write(result);}
我已经尝试了“ReferenceLoopHanding.Ignore”技巧,它使异常静音,但列表仍未传递给视图。
当我改为routes
单个对象而不是列表时,代码工作,所以我认为代码不喜欢使用列表。
我是这个项目的新手,所以我不知道如何解决这个问题,并使用List ...
编辑:这是完整的异常消息,它发生在该string result = JsonConvert...
行上。
使用类型'System.Data.Entity.DynamicProxies.PartNumber_B135A5D16403B760C3591872ED4C98A25643FD10B51246A690C2F2D977973452'检测到自引用循环。路径'路线[0] .incomingLots [0] .partNumber.partType.partNumbers'。
陪伴而非守候