我是mvc3的新手,并试图在visual studio 2010中使用实体框架实现一个简单的数据库Web应用程序。我正在关注这篇文章:
我已经完成了帖子中写的所有内容。但是我一直在收到这个错误:
传递到字典中的模型项是类型的 ' System.Collections.Generic.List`1 [MvcApplication3.Models.BlogContext]&#39 ;, 但是这个字典需要一个类型的模型项 ' MvcApplication3.Models.BlogContext'
我不确定为什么会出现这个错误。我在SO上关注了其他帖子并改变了这样的观点:
@model MvcApplication3.Models.BlogContext
或者
@model List<MvcApplication3.Models.BlogContext>
这些都不起作用。任何帮助将受到高度赞赏,并促进我的学习。
感谢。
答案 0 :(得分:1)
嗯,实际上,Julie从1 BlogContext中检索所有可用的博客,如下所示:
using (var db = new BlogContext())
{
return View(db.Blogs.ToList());
}
将Blog对象发送到View。
在视图中,您应该有类似的东西:
@model List<MvcApplication3.Models.Blog>
不类型BlogContext的项目。您没有使用完整(博客)上下文列表填充视图...上下文“是”数据库,博客是Blog表中的项目,这些项目实现为C#类实例并提供给列表中包含的视图
答案 1 :(得分:0)
问题是您在控制器中传递了List<BlogContext>
,但您的视图设置了BlogContext
模型。您应该定义需要使用的内容,如果您需要它,因为将上下文传递给视图实际上是一种不好的做法(您不应该在视图中包含任何逻辑,这就是您拥有控制器的原因)。
在您的操作方法中:
var context = new BlogContext();
return View(context);
在您的视图中
@model MvcApplication3.Models.BlogContext