【发布时间】:2016-06-13 08:36:26
【问题描述】:
我正在尝试将我的模型转换为 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);
}
}
我在另一个没有发生此错误的视图中执行了完全相同的操作。这是什么原因造成的,我该如何处理?
【问题讨论】:
-
Partner是否包含任何作为集合或复杂对象的属性? -
是的。确切地说是其中两个;
public virtual ICollection<Country>和public virtual ICollection<Secret> -
您可能需要在查询中使用
.Include()来加载它们。 -
对不起,我忘记了,但我已经有了包含。已编辑
标签: c# json asp.net-mvc razor