0

我有一个从 Active Directory 中检索的用户列表,如下所示

PrincipalContext pc = new PrincipalContext(ContextType.Domain, "DOMAIN", "dc=domain,dc=org");
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, "Advisors");
ViewBag.EmployeeID = new SelectList(group.Members, "EmployeeID", "DisplayName");

我想在此列表中添加两个附加项目,但不想在 Active Directory 中为它们创建用户帐户,因为它们不是真实用户。

是否可以做类似的事情

var items1 = new[] 
{  
    new { EmployeeID = "1", DisplayName = "Independent" },
    new { EmployeeID = "2", DisplayName = "Own" }
};

var items = Concat(group.Members, items1);
{
    ViewBag.EmployeeID = new SelectList(items, "EmployeeID", "DisplayName");
}
4

1 回答 1

1

好吧,您可以拥有这样的ViewModel

public class EmployeeViewModel
{
    public string EmployeeId { get; set; }
    public string DisplayName { get; set; }
}

并且您可以将 group.Members 投射到您的 ViewModel 列表中,在此列表中添加一些自定义项并将此列表设置为 ViewBag。

var members = group.Members.Select(x => new EmployeeViewModel() { EmployeeId = x.EmployeeId, DisplayName = x.DisplayName }).ToList();

members.Add(new EmployeeViewModel() { EmployeeId = "1", DisplayName = "Independent" });
members.Add(new EmployeeViewModel() { EmployeeId = "2", DisplayName = "Own" });

ViewBag.EmployeeID = new SelectList(members, "EmployeeID", "DisplayName");
于 2012-11-27T17:29:22.000 回答