我没有找到答案,所以我问这个问题......很抱歉打扰。
我首先使用代码类似
的代码public class Article
{
...
public virtual ICollection<Photos> Images { get; set; }
...
}
public class Photo
{
...
public string Location {get;set;} //can be home, work or anything
...
}
现在,在HomeController中,我收到所有文章并做
if(articles.Any())
{
ViewBag.Articles = articles;
}
然后,在视图中
foreach(var article in ViewBag.Articles)
{
... Do things working great here but...
}
所有这一切都很有效。我想要做的是从ICollection为每篇文章获取一个带位置==“home”的图像(例如)。为了做到这一点,我在法语中得到了不同的错误,他们说我“无法在其他动态上执行动态类型请求”,“数据加载器尚未打开”或“dbContext已关闭”。
感谢您的帮助。
答案 0 :(得分:1)
我认为视图中的ViewBag.Articles不包含Photo实体。当您尝试访问照片时,上下文已关闭并导致错误。
我的建议是:
调用包含在您的控制器中以提前加载Photo实体。
http://msdn.microsoft.com/en-us/library/bb738708.aspx
然后,在分配文章时调用ToList:
ViewBag.Articles = articles.ToList();
除此之外,最好使用ViewModel,而不是将数据对象放入ViewBag。祝你好运。