ASP.NET - 将所有用户从AspNetUsers表显示到Identity中的Dropdown List?

时间:2017-08-23 20:10:56

标签: asp.net asp.net-core asp.net-identity asp.net-core-identity

在做了一些研究后,我找到了解决问题的方法,但是,我正在尝试在名为GetAssignedToDDL的{​​{1}}类型的函数中执行此操作。

在尝试了我在这里和其他资源上找到的一些答案后,我不断得到同样的错误。我一直在犯的错误:

  

无法隐式转换类型   'System.Collections.Generic.List'   至   'System.Collections.Generic.List'LWC C:\ Users \ runningexe \ Desktop \ LincolnWaterCommissionWorkOrderInventorySystem \ LWC \ LWC \ Controllers \ WorkOrderController.cs 201 Active

有没有办法在函数类型为List<SelectListItem>的情况下执行此操作?或者还有其他我在这里缺少的东西。就像我说的那样,我尝试了很多基本上做同样事情的解决方案,但我得到的错误是一样的。

编辑:功能使用柯克的答案。现在我的DbContext出错了。

List<SelectListItem

我以前尝试过的事情:

private static List<SelectListItem> GetAssignedToDDL()
        {
        List<SelectListItem> assignedToList = new List<SelectListItem>();

            var dbContext = new ApplicationDbContext();
            var userList = dbContext.Users.ToList();

        assignedToList = userList.Select(u => new SelectListItem
        {
            Text = u.UserName,
            Value = u.Id
        }).ToList();

      return assignedToList;
    }

以及其他一些使用不同代码的尝试(相同错误)。这是最新的。

DbContext错误:

  

没有为此DbContext配置数据库提供程序。可以通过覆盖DbContext.OnConfiguring方法或在应用程序服务提供程序上使用AddDbContext来配置提供程序。如果使用AddDbContext,那么还要确保您的DbContext类型在其构造函数中接受DbContextOptions对象,并将其传递给DbContext的基础构造函数。

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ的Select功能。在您看到编译错误的行上,尝试附加以下内容:

.Select(u => new SelectListItem { Text = u.UserName, Value = u.Id }).ToList();

如果您包含代码,我可以编辑此答案,使其更具针对您的用例。如果它不存在,您还需要包含using System.Linq;

如果您不熟悉Select,则它实际上称为mapping函数。你可以找到一个很好的解释here