使用成员资格提供用户和角色的列表 [英] List of Users and Role using Membership Provider
问题描述
我想产生一个视图来显示用户的列表,并使用自己的角色内置的成员资格提供。
我的模型和控制器都拿起用户和角色,但我有我的观点展示他们的麻烦。
型号
公共类AdminViewModel
{
公共MembershipUserCollection用户{搞定;组; }
公共字符串[] {角色获得;组; }
}
控制器
公众的ActionResult管理员()
{
AdminViewModel视图模型=新AdminViewModel
{
用户= MembershipService.GetAllUsers()
角色= RoleService.GetRoles()
}; 返回视图(视图模型);
}
查看
<$p$p><$c$c>Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<Account.Models.AdminViewModel>>\"&LT;表&gt;&所述; TR&GT;&LT; TD&GT;用户名&LT; / TD&GT;
&LT; TD&GT;电子邮件和LT; / TD&GT;
&LT; TD&GT; IsOnline&LT; / TD&GT;
&LT; TD&GT; CreationDate&LT; / TD&GT;
&LT; TD&GT; LastLoginDate&LT; / TD&GT;
&LT; TD&GT; LastActivityDate&LT; / TD&GT;
&LT; / TR&GT;&LT;%的foreach(在型号VAR项){%GT;&所述; TR&GT;
&所述; TD&GT;&下;%= item.UserName%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.Email%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.IsOnline%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.CreationDate%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.LastLoginDate%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.LastActivityDate%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.ROLE%GT;&下; / TD&GT;
&LT; / TR&GT;&LT;%}%GT;&LT; /表&gt;
就像安德鲁说,你需要从 AdminViewModel
让你查看继承,而不是的IEnumerable&LT; AdminViewModel&GT;
。一旦被纠正,你需要在你的<$ C $遍历 Model.Users
,而不是模式
结束C>的foreach 。 Model.Users
将包含的MembershipUser
的用户名属性的对象。
&LT;%的foreach(在Model.Users VAR项){%GT;&所述; TR&GT;
&所述; TD&GT;&下;%= item.UserName%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.Email%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.IsOnline%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.CreationDate%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.LastLoginDate%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.LastActivityDate%GT;&下; / TD&GT;
&所述; TD&GT;&下;%= item.ROLE%GT;&下; / TD&GT;
&LT; / TR&GT;&LT;%}%GT;
I’m trying to produce a view to show a list of users and their role using the built in membership provider.
My model and controller are picking up the users and roles but I’m having trouble displaying them in my view.
Model
public class AdminViewModel
{
public MembershipUserCollection Users { get; set; }
public string[] Roles { get; set; }
}
Controller
public ActionResult Admin()
{
AdminViewModel viewModel = new AdminViewModel
{
Users = MembershipService.GetAllUsers(),
Roles = RoleService.GetRoles()
};
return View(viewModel);
}
View
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>
Like Andrew said, you need to make your View inherit from AdminViewModel
, not IEnumerable<AdminViewModel>
. Once that is corrected you'll need to iterate over Model.Users
, instead of Model
in your foreach
. Model.Users
will contain the MembershipUser
objects with the Username property.
<% 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>
<% }%>
这篇关于使用成员资格提供用户和角色的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!