如何在表格中显示列表

时间:2018-06-06 10:52:57

标签: c# asp.net asp.net-mvc

在我的情况下,如何在表格中显示列表? 在我看来,我已尝试过这个

     @foreach (var AllUsers in Model.AllUsers)
            {
                <td>@AllUsers.Name</td>
                <td>@AllUsers.Email</td>
                <td>@AllUsers.IsActive</td>
            }

但我收到此错误

  

NullReferenceException:未将对象引用设置为对象的实例。

这是我的控制器:

 public IActionResult Users()
    {
        using (var aplicationDbContext = new ApplicationContext())
        {
            ApplicationUser user = new ApplicationUser();

            var AllUsers = aplicationDbContext.ApplicationUsers.AsNoTracking().FirstOrDefault(m => m.Id==m.Id);
            user.AllUsers = AllUsers.AllUsers;
            if (AllUsers == null)
            {
                return NotFound();
            }
        }
        return View(AllUsers);
    }

1 个答案:

答案 0 :(得分:1)

坦率地说,你的对象结构没有多大意义,可以简化。一个“ApplicationUser”类,逻辑上听起来像是包含一个用户的详细信息,然后有一个属性“AllUsers”,其中包含每个人的列表。这令人困惑。

您的代码中还有其他几个逻辑错误,如注释中所述 - 只返回一行到AllUsers,并返回错误的对象作为您的模型。

所以...我认为你可以这样做而不用大惊小怪:

<强>控制器:

public IActionResult Users()
{
    using (var aplicationDbContext = new ApplicationContext())
    {
       var AllUsers = aplicationDbContext.ApplicationUsers.toList(); //return all users not just the first
       return View(AllUsers);
    }
}

查看

@model List<ApplicationUser>

<table>
@foreach (var usr in Model)
{
  <tr>
    <td>@usr.Name</td>
    <td>@usr.Email</td>
    <td>@usr.IsActive</td>
  </tr>
}
</table>