小编典典

序列化类型为'SubSonic.Schema .DatabaseColumn'的对象时,检测到循环引用。

c#

我正在尝试做一个简单的JSON返回,但是我遇到以下问题。

public JsonResult GetEventData()
{
    var data = Event.Find(x => x.ID != 0);
    return Json(data);
}

我得到一个HTTP 500,但此问题的标题中显示了例外。我也试过

var data = Event.All().ToList()

那也带来了同样的问题。

这是错误还是我的实现?


阅读 286

收藏
2020-05-19

共1个答案

小编典典

看来您的对象层次结构中有循环引用,JSON序列化程序不支持。您是否需要所有列?您只能在视图中选择所需的属性:

return Json(new 
{  
    PropertyINeed1 = data.PropertyINeed1,
    PropertyINeed2 = data.PropertyINeed2
});

这将使您的JSON对象更轻便,更易于理解。如果您有许多属性,则可以使用AutoMapper
自动在DTO对象和View对象之间进行映射。

2020-05-19