Я пытаюсь отобразить активный член группы каталогов в представлении.Когда я запускаю код, у меня появляется ошибка «Элемент модели, переданный в словарь, имеет тип« System.String [] », но для этого словаря требуется элемент модели типа« System.Collections.Generic.IEnumerable`1 [SSSFT.LogIT.Models.ActiveDirectory]».Отладка кода показывает всех членов группы, которых я ищу
Модель класса
public class ActiveDirectory
{
public int id { get; set; }
//public string Username { get; set; }
//public string Email { get; set; }
public string SamAccountName { get; set; }
}
Контроллер
public ActionResult Index(string username)
{
username = "sssftappdev";
string[]output = null;
using (var ctx = new PrincipalContext(ContextType.Domain))
using (var user = UserPrincipal.FindByIdentity(ctx, username))
{
if (user != null)
{
output = user.GetGroups() //this returns a collection of principal objects
.Select(x => x.SamAccountName) // select the name. you may change this to choose the display name or whatever you want
.ToArray(); // convert to string array
}
}
return View(output);
}
Просмотр
@model IEnumerable<SSSFT.LogIT.Models.ActiveDirectory>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.SamAccountName)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.SamAccountName)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.id }) |
@Html.ActionLink("Details", "Details", new { id=item.id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.id })
</td>
</tr>
}
</table>