不能将类型 'project_name.Models.model_name' 隐式转换为"System.Collections.IEnumerable"。存在显式转换



我只想打印带有(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();

不能循环,因为它不是一个集合。它是一个单独的对象

你有两个选择:

  1. 不要在对象上循环,直接使用它。
  2. 获取一个对象集合而不是单个对象。例如:
var articles = db.Articles.Include("Domain").Include("User")
.Where(art=> art.ShowInDatabase == true);

相关内容

最新更新