Получить имя из идентификатора через метод Active Directory? - PullRequest
0 голосов
/ 22 декабря 2011

Мне сложно объяснить. Но я попробую.

AssignedTo - это Guid в базе данных. Мне нужно сравнить его со списком гидов в AD, чтобы получить имя для показа.

У меня нет проблем с рекламой. Это больше похоже на то, как я это делаю и отображаю имя в представлении, которое проблематично.

Спасибо за помощь.

_

Представление: (Модель является Entity Model of 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 ]

1 голос
/ 22 декабря 2011

Адаптируйте модель представления, которую вы передаете вашему представлению:

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>
0 голосов
/ 22 декабря 2011

Я исправил проблему, создав частичный класс.

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

И затем сделал что-то близкое к тому, что предложил Дмитрий ...

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

И затем отобразил его ...

<td>@item.AssignedToName</td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...