我有Razor的ASP.Net MVC应用程序。我尝试在视图中访问一个集合。这是我的代码:
@foreach (var question in ViewBag.Questions) {
<p>@question.Name</p>
foreach (var answer in question.Answers) {
<input type="radio" name="@answer.QuestionId" value='@answer.id' /> @answer.Text<br />
}
}
在foreach (var answer in question.Answers)
我得到:
“ObjectContext实例已被释放,不能再用于需要连接的操作。”
关于.ToList()
集合,我有一个Questions
,但如果我想在运行时访问ti,我该如何处理Answers
集合?
答案 0 :(得分:3)
确保您已在控制器中急切加载Answers
集合:
public ActionResult Foo()
{
ViewBag.Questions = db.Questions.Include("Answers").ToList();
return View();
}
关于ViewBag
,您可以使用视图模型。更不用说你的问题纯粹与你正在使用的数据访问技术有关(我想是EntityFramework)并且与ASP.NET MVC无关。
答案 1 :(得分:0)
您需要将问题投射到新对象和ToArray
答案集合中。
您还可以使用.Load
或.Include