剃刀嵌套for循环

时间:2012-02-20 14:00:00

标签: .net asp.net-mvc-3 razor

我有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集合?

2 个答案:

答案 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

急切加载Answers集合
相关问题