【问题标题】:Nested for-loop in razor剃刀中的嵌套for循环
【发布时间】:2012-02-20 13:59:59
【问题描述】:

我有一个带有 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 实例已被释放,不能再用于需要连接的操作。”

当涉及到 Questions 集合时,我有一个 .ToList(),但是如果我想在运行时访问 ti,我该如何处理 Answers 集合?

【问题讨论】:

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


    【解决方案1】:

    确保您已在控制器中急切地加载了 Answers 集合:

    public ActionResult Foo()
    {
        ViewBag.Questions = db.Questions.Include("Answers").ToList();
        return View();
    }
    

    关于ViewBag,好吧,您可以改用视图模型。更不用说你的问题纯粹与你使用的数据访问技术有关(我猜是EntityFramework),和ASP.NET MVC无关。

    【讨论】:

      【解决方案2】:

      您需要将问题投影到一个新对象和ToArray answers 集合中。

      您还可以使用 .Load.Include 预先加载 Answers 集合

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多