Asp.net mvc 使用成员资格提供程序的用户和角色列表

Asp.net mvc 使用成员资格提供程序的用户和角色列表,asp.net-mvc,Asp.net Mvc,我正在尝试使用内置的成员资格提供程序生成一个视图,以显示用户及其角色的列表 我的模型和控制器正在拾取用户和角色,但在视图中显示它们时遇到问题 型号 public class AdminViewModel { public MembershipUserCollection Users { get; set; } public string[] Roles { get; set; } } 控制器 public ActionResult Admin()

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

我的模型和控制器正在拾取用户和角色,但在视图中显示它们时遇到问题

型号

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>
Inherits=“System.Web.Mvc.ViewPage”
用户名
电子邮件
等值线
创建日期
拉斯洛金代特酒店
最后活动日期

这是什么样的故障? 请确保在“调试器”下填充了放入模型的列表(非空)

顺便说一下:

foreach (var item in Model)
看起来你提到了

foreach (var item in Model.Users) 

正如Andrew所说,您需要使视图继承自
AdminViewModel
,而不是
IEnumerable
。纠正后,您需要迭代
Model.Users
,而不是
foreach
中的
Model
Model.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>

<% }%>


…你到底遇到了什么样的麻烦?在我看来,我遇到了错误。。。Account.Models.AdminViewModel不包含“UserName”的定义,并且在我使用foreach(Model.Users中的var项)时,找不到接受“Account.Models.AdminViewModel”类型的第一个参数的扩展方法“UserName”(是否缺少using指令或程序集引用?)我没有选择用户模型。调试站点时,控制器中的模型具有用户和角色的值。请从模型类型定义中删除IEnumerable。您只传递了AdminViewModel Inherits=“System.Web.Mvc.ViewPageI”的一个实例。我已删除IEnumerable并添加了Model.Users。但现在我收到错误…“object”不包含“UserName”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“UserName”(是否缺少using指令或程序集引用?