我正在尝试将我的模型转换为JSON字符串,因为我希望在此特定视图中使用Knockout绑定。
首先,我尝试将模型转换为JSON字符串,如下所示:
@{
var serializerSettings = new Newtonsoft.Json.JsonSerializerSettings();
serializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializerObject(Model, serializerSettings));
}
在最后一行(实际转换)中,发生以下错误:
ObjectContext实例已被释放,不能再用于需要连接的操作
我的控制器只是从数据库中获取对象,就像这样:
public ActionResult Partner(int id)
{
using(var db = new DatabaseContext())
{
var partner = db.Partners
.Include(x => x.OperatingCountries)
.Include(x => x.Secrets)
.FirstOrDefault(x => x.Id = id);
return View(partner);
}
}
我在另一个没有发生此错误的视图中完成了相同的操作。造成这种情况的原因,以及我该如何处理?
答案 0 :(得分:0)
实体框架中的实体对象不应用于序列化。将这些对象存储在分布式缓存中时会发生同样的问题。
如果您仍想使用Entity对象进行序列化,请禁用延迟加载。
Fragment