这是我的代码: 控制器 -
DatabaseContext db = new DatabaseContext();
List<users> UsersToView = new List<users>();
UsersToView = db.users.ToList();
return View(UsersToView);
查看 -
我写道:@model List<UsersToView>
但这给了我一个错误:
严重级代码描述项目文件行抑制状态 错误CS0246类型或命名空间名称&#39; UsersToView&#39;找不到(你错过了使用指令或汇编引用吗?)
我不确定我在这里做错了什么。
答案 0 :(得分:2)
您可以像这样传递users
列表:
控制器:
DatabaseContext db = new DatabaseContext();
return View(db.users.ToList());
并查看:
@model IEnumerable<users>
答案 1 :(得分:1)
您的控制器代码看起来不错。在View
中尝试使用此代码第一种方式
@model IList<users>
第二种方式
@model IEnumerable<users>
答案 2 :(得分:1)
我知道其他答案可能会解决您的问题,但让我添加一个关于问题本身的快速说明:
我写道:
@model List<UsersToView>
但这给了我一个错误
您在该行代码中出错的原因是,当您编写@model
时,编译器期望接下来的内容是数据类型。因此,您可以通过这种方式明确声明模型应具有哪种数据类型。虽然声明是正确的,但UsersToView
不是类型的东西,但它是在控制器中声明的局部变量,所以视图甚至看不到它,并试图将其解释为未知输入List<UsersToView>
。基本上你现在说的是你的模型是一个未知类型的列表。
这就是编译器说的原因:
类型或命名空间名称&#39; UsersToView&#39;无法找到
您应该做的是在模型声明中声明UsersToView
的实际类型,而不是变量名称,如其他答案中所述:
@model IEnumerable<users>
所以请注意,现在它已使用users
代替UsersToView
。当然我写的IEnumerable
比List
更通用,所以你也可以向视图发送一个users
数组,但如果你需要List
的LINQ方法当然你可以这样做:
@model List<users>