我想將模型轉換爲JSON字符串,因爲我希望在此特定視圖中使用Knockout綁定。'The ObjectContext instance has been'in Razor's Html.Raw()
首先,我嘗試將模型轉換成JSON字符串,像這樣:
@{
var serializerSettings = new Newtonsoft.Json.JsonSerializerSettings();
serializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializerObject(Model, serializerSettings));
}
在最後一行(實際換算),出現以下錯誤:
ObjectContext實例已被處置,不能再用於需要連接的操作
我的控制器只是從DB獲取對象,就像這樣:
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);
}
}
我在另一個視圖中完成了同樣的操作,其中沒有發生此錯誤。這是什麼原因造成的,我該如何繼續?
「合作伙伴」是否包含集合或複雜對象的屬性? –
是的。其中兩個是確切的; '公共虛擬ICollection'和'公共虛擬ICollection ' –
Detilium
您可能需要在查詢中使用'.Include()'來加載它們。 –