我只想打印带有(ShowInDatabase == true)
的文章但我遇到:
RuntimeBinderException:不能隐式转换类型' project . models。到"System.Collections.IEnumerable"。在Views- Articles- Index: @foreach (project . models)中存在显式转换(您是否缺少强制类型转换?)Article Article in ViewBag.Articles)
In Model->Article there is this
public bool ShowInDatabase { get; set; }
查询:
var articles = db.Articles.Include("Domain").Include("User")
.Where(art=> art.ShowInDatabase == true)
.FirstOrDefault();
重要:如果我像这样修改查询,它会工作:
var articles = db.Articles.Include("Domain").Include("User");
通过
发送到视图ViewBag.Articles = articles;
文章在视图→→指数
@foreach (project_name.Models.Article article in ViewBag.Articles)
单个对象和对象集合是两种不同的东西。换句话说……一个苹果不是一篮子苹果。
这里你正在获取一个对象的单个实例:
var articles = db.Articles.Include("Domain").Include("User")
.Where(art=> art.ShowInDatabase == true)
.FirstOrDefault();
不能循环,因为它不是一个集合。它是一个单独的对象
你有两个选择:
- 不要在对象上循环,直接使用它。
- 获取一个对象集合而不是单个对象。例如:
var articles = db.Articles.Include("Domain").Include("User")
.Where(art=> art.ShowInDatabase == true);