我试图列出所有用户,但我收到以下错误:
'&IEnumerable的LT;>'不包含' UsersVm'的定义没有扩展方法' UserVm'接受类型' IEnumerable'的第一个参数。可以找到
我的代码如下:
型号:
public class UserEntity
{
public virtual int Id { get; set; }
public virtual string Username { get; set; }
public virtual string Email { get; set; }
public virtual string PasswordHash { get; set; }
}
视图模型:
public class UsersIndex
{
public IEnumerable<UserEntity> UsersVm { get; set; }
}
查看(我在&{39; .UsersVm
&#39;)收到错误
@model IEnumerable<MyBlog.Areas.Admin.ViewModels.UsersIndex>
<h1>Admin Users</h1>
<ul>
@foreach (var user in Model.UsersVm)
{
<li>@user.Username</li>
}
</ul>
控制器:
public class UsersController : Controller
{
MyBlogEntities db = new MyBlogEntities();
// GET: Admin/Users
public ActionResult Index()
{
var users = db.Users.ToList();
return View(users);
}
}
MyBlogEntities(DbContext)
public class MyBlogEntities : DbContext
{
public DbSet<UserEntity> Users { get; set; }
}
答案 0 :(得分:2)
<ul>
@foreach (var user in Model)
{
@foreach (var userVm in user.UsersVm)
{
<li>@userVm.Username</li>
}
}
</ul>
答案 1 :(得分:1)
不需要类UsersIndex,然后视图变为:
@model IEnumerable<MyBlog.Areas.Admin.ViewModels.UserEntity>
<h1>Admin Users</h1>
<ul>
@foreach (var user in Model)
{
<li>@user.Username</li>
}
</ul>
答案 2 :(得分:0)
您声明了一个类UsersIndex
,但您似乎没有使用它。控制器需要实例化并将UsersIndex
值传递给视图,并且视图@model
需要接受UsersIndex
而不是IEnumerable<UsersIndex>
答案 3 :(得分:0)
您的视图模型包含IEnumerable。视图中使用的模型是IEnumerable视图模型。所以基本上你有一个嵌套在一个集合中的集合。我假设你只想要一个集合?在这种情况下,您根本不需要视图模型,或者您应该将视图中使用的模型更改为@model MyBlog.Areas.Admin.ViewModels.UserEntity
。
如果嵌套在集合中的集合是故意的,那么我建议您将所有内容放在视图模型中,并且在视图中仍然有@model MyBlog.Areas.Admin.ViewModels.UserEntity
。