Список пользователей и роли с использованием поставщика членства - PullRequest
3 голосов
/ 13 мая 2010

Я пытаюсь создать представление для отображения списка пользователей и их роли с помощью встроенного поставщика членства.

Моя модель и контроллер выбирают пользователей и роли, но у меня возникают проблемы с отображением их в моем виде.

Модель

public class AdminViewModel
    {
        public MembershipUserCollection Users { get; set; }
        public string[] Roles { get; set; }
    }

Контроллер

public ActionResult Admin()
{
      AdminViewModel viewModel = new AdminViewModel
      {
            Users = MembershipService.GetAllUsers(),
        Roles = RoleService.GetRoles()
      };

      return View(viewModel);
}

Посмотреть

Inherits="System.Web.Mvc.ViewPage<IEnumerable<Account.Models.AdminViewModel>>"

<table>

<tr>
    <td>UserName</td>
    <td>Email</td>
    <td>IsOnline</td>
    <td>CreationDate</td>
    <td>LastLoginDate</td>
    <td>LastActivityDate</td>
</tr>

<% foreach (var item in Model) { %>

<tr>
    <td><%=item.UserName %></td>
    <td><%=item.Email %></td>
    <td><%=item.IsOnline %></td>
    <td><%=item.CreationDate %></td>
    <td><%=item.LastLoginDate %></td>
    <td><%=item.LastActivityDate %></td>
    <td><%=item.ROLE %></td>
</tr>

<% }%>

</table>

Ответы [ 2 ]

1 голос
/ 14 мая 2010

Как сказал Эндрю, вам нужно сделать так, чтобы ваш View наследовал от AdminViewModel, а не IEnumerable<AdminViewModel>. После того, как это будет исправлено, вам нужно будет перебрать Model.Users вместо Model в вашем foreach. Model.Users будет содержать MembershipUser объекты со свойством Username.

<% foreach (var item in Model.Users) { %>

<tr>
    <td><%=item.UserName %></td>
    <td><%=item.Email %></td>
    <td><%=item.IsOnline %></td>
    <td><%=item.CreationDate %></td>
    <td><%=item.LastLoginDate %></td>
    <td><%=item.LastActivityDate %></td>
    <td><%=item.ROLE %></td>
</tr>

<% }%>
0 голосов
/ 13 мая 2010

Что за беда? Пожалуйста, убедитесь, что в отладчике, что списки, которые вы помещаете в модель, заполнены (не пустые).

Кстати:

foreach (var item in Model)

похоже, что вы упомянули

foreach (var item in Model.Users) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...