Asp.net core 如何在Razor视图中列出所有用户?

Asp.net core 如何在Razor视图中列出所有用户?,asp.net-core,razor,view,identity,Asp.net Core,Razor,View,Identity,我正在制作一个页面,用户将由管理员批准。问题 当我尝试列出所有用户时,我只得到其中一个。 [1] : 这是我的Approve.cshtml.cs public class ApproveModel : PageModel { private readonly ApplicationDbContext _db; public ApproveModel(ApplicationDbContext db) { _db = db; }

我正在制作一个页面,用户将由管理员批准。问题 当我尝试列出所有用户时,我只得到其中一个。 [1] :

这是我的Approve.cshtml.cs

 public class ApproveModel : PageModel
{
    private readonly ApplicationDbContext _db;
  
    public ApproveModel(ApplicationDbContext db)
    {
        _db = db;
     

    }
    public string UserId { get; set; }
  
    public bool IsSelected { get; set; }
    public async Task<IActionResult> OnGetAsync()
    {
        foreach (var user in _db.UserRoles)
        {
            UserId = user.UserId;
            if (user.RoleId == "2")
            {
                IsSelected = true;
            }
            else
            {
                IsSelected = false;
            }
           
        }
        return Page();
    }

}
公共类批准模型:PageModel
{
私有只读应用程序dbContext_db;
公共认可模型(ApplicationDbContext数据库)
{
_db=db;
}
公共字符串用户标识{get;set;}
公共布尔值被选为{get;set;}
公共异步任务OnGetAsync()
{
foreach(数据库UserRoles中的var用户)
{
UserId=user.UserId;
如果(user.RoleId==“2”)
{
IsSelected=true;
}
其他的
{
IsSelected=false;
}
}
返回页();
}
}
这是我的Approve.cshtml

<form method="post">
<div class="card">
    <div class="card-header">
        <h2>Approve users</h2>
    </div>
    <div class="card-body">
        <div class="form-check m-1">
            <input asp-for="@Model.IsSelected" class="form-check-input" />
            <label class="form-check-label">
                @Model.User.Identity.Name
            </label>
        </div>

    </div>
    <div class="card-footer">
        <input type="submit" value="Update" class="btn btn-primary" style="width:auto" />
    </div>
</div>

批准用户
@Model.User.Identity.Name
我试图在视图中使用foreach,但它不起作用,或者我弄错了


谢谢您的帮助,我非常需要它。P>根据您的描述,我建议您可以考虑创建一个用户列表来存储所有管理员认可的用户。

然后在页面中使用foreach循环所有用户并在客户端视图中显示它

更多详细信息,请参考以下代码:

ApproveUsers模式:

public class ApproveUsers
{
    public string UserId { get; set; }

    public bool IsSelected { get; set; }
}
页面模型:

public class Error2Model : PageModel
{
    public List<ApproveUsers> Users { get; set; } = new List<ApproveUsers>();

    public void OnGet()
    {

        foreach (var user in _db.UserRoles)
        {
            ApproveUsers ap = new ApproveUsers();
            ap.UserId = user.UserId;
            if (user.RoleId == "2")
            {
                ap.IsSelected = true;
            }
            else
            {
                ap.IsSelected = false;
            }
            Users.Add(ap);

        }

    }
}
public类Error2Model:PageModel
{
公共列表用户{get;set;}=new List();
公共互联网
{
foreach(数据库UserRoles中的var用户)
{
ApproveUsers ap=新ApproveUsers();
ap.UserId=user.UserId;
如果(user.RoleId==“2”)
{
ap.IsSelected=true;
}
其他的
{
ap.IsSelected=false;
}
用户。添加(ap);
}
}
}
页面视图:

<form method="post">
    <div class="card">
        <div class="card-header">
            <h2>Approve users</h2>
        </div>
        <div class="card-body">
            @foreach (var item in Model.Users)
            {
                <div class="form-check m-1">
                    <input asp-for="@item.IsSelected" class="form-check-input" />
                    <label class="form-check-label">
                        @item.UserId
                    </label>
                </div>
            }


        </div>
        <div class="card-footer">
            <input type="submit" value="Update" class="btn btn-primary" style="width:auto" />
        </div>
    </div>
    </form>

批准用户
@foreach(Model.Users中的var项)
{
@item.UserId
}

您应该使用
foreach
循环。在视图
@model list
中将用户列表作为模型检索,然后使用此
@foreach(var user in@model)