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指令或程序集引用?