'IEnumerable<>'不包含 的定义,也没有扩展方法



我正在尝试列出我的所有用户,但出现以下错误:

"IEnumerable<>"不包含"UsersVm"的定义,并且找不到接受类型为"IEnumerable"的第一个参数的扩展方法"UserVm"

我的代码如下:

型:

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; }
    }

查看(我在" .UsersVm '处收到错误)

@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; }
    }
<ul>
    @foreach (var user in Model)
    {
        @foreach (var userVm in user.UsersVm)
        {
            <li>@userVm.Username</li>
        }
    }
</ul>
不需要

类用户索引,然后视图变为:

@model IEnumerable<MyBlog.Areas.Admin.ViewModels.UserEntity>
<h1>Admin Users</h1>
<ul>
    @foreach (var user in Model)
    {
        <li>@user.Username</li>
    }
</ul>

你声明了一个类UsersIndex但你似乎没有使用它。控制器需要实例化并将UsersIndex值传递给视图,并且视图的@model需要接受UsersIndex而不是IEnumerable<UsersIndex>

您的视图模型包含一个 IEnumerable。视图中使用的模型是 IEnumerable 视图模型。因此,从本质上讲,集合嵌套在集合中。我假设你只想要一个集合?在这种情况下,您要么根本不需要视图模型,要么应将视图中使用的模型更改为 @model MyBlog.Areas.Admin.ViewModels.UserEntity

如果嵌套在集合中的集合是故意的,那么我建议您将所有内容都放在视图模型中,并且视图中仍然有@model MyBlog.Areas.Admin.ViewModels.UserEntity

相关内容

  • 没有找到相关文章

最新更新