通过Active Directory方法从ID获取名称?

时间:2011-12-22 00:35:54

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework

我很难解释,但我会尝试。

AssignedTo是数据库中的Guid。我需要将它与AD中的Guids列表进行比较,以获得要显示的名称。

我做AD的东西没问题。更多的是我如何做,并在视图中显示有问题的名称。

感谢您的帮助。

_

查看:(模型是DB的实体模型)

    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.AssignedTo</td>
            </tr>
        }
    </tbody>

控制器:

    private MyEntities db = new MyEntities();
    public ViewResult Index()
    {
        return View(db.Items.ToList());
    }

AD代码:(不确定将其放在何处并使其可供视图访问。)

    public string GetUserFromGuid(Guid g)
    {
        ActiveDirectoryModel adm = new ActiveDirectoryModel();
        return adm.FetchContacts().Find(n => n.Value == g.ToString()).Text;
    }

2 个答案:

答案 0 :(得分:1)

调整您传递给视图的视图模型:

private MyEntities db = new MyEntities();

public ViewResult Index()
{
    var model = db.Items.ToList().Select(x => GetUserFromGuid(x.AssignedTo));
    return View(model);
}

然后在你看来:

@model IEnumerable<string>
...
<tbody>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item</td>
        </tr>
    }
</tbody>

答案 1 :(得分:0)

我通过创建部分类来解决问题。

public partial class Item
{
    public string AssignedToName { get; set; }
}

然后做一些接近Dimitri建议的事情......

model.ForEach(x => x.AssignedToName = GetUserFromGuid(x.AssignedTo));

然后显示它......

<td>@item.AssignedToName</td>