モデルをJSON文字列に変換しようとしています。この特定のビューでKnockoutバインディングを使用したいと思います。RazorのHtml.Raw()でObjectContextインスタンスが破棄されました
まず第一に、私はそうのように、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);
}
}
このエラーが発生しない別のビューでは、まったく同じことを行っています。これを引き起こす原因は何ですか?どのように進めますか?
「パートナー」には、コレクションまたは複合オブジェクトであるプロパティが含まれていますか? –
はい、あります。そのうちの2つは正確です。 'public virtual ICollection'と 'public virtual ICollection ' –
Detilium
おそらく' .Include() 'をクエリに使ってロードする必要があります。 –