使用成员资格提供者的用户和角色列表

时间:2010-05-13 15:21:42

标签: asp.net-mvc

我正在尝试使用内置的成员资格提供程序生成一个显示用户及其角色列表的视图。

我的模型和控制器正在接收用户和角色,但我在浏览器中显示它们时遇到了问题。

模型

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 个答案:

答案 0 :(得分:1)

就像安德鲁所说,你需要让你的视图继承自AdminViewModel,而不是IEnumerable<AdminViewModel>。纠正后,您需要在Model.Users中迭代Model,而不是foreachModel.Users将包含具有Username属性的MembershipUser个对象。

<% 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>

<% }%>

答案 1 :(得分:0)

它有什么问题? 请确保在调试器下填充了放入模型的列表(非空)。

顺便说一下:

foreach (var item in Model)

看起来像你提到的

foreach (var item in Model.Users)