使用成员资格提供用户和角色的列表 [英] List of Users and Role using Membership Provider

查看:124
本文介绍了使用成员资格提供用户和角色的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想产生一个视图来显示用户的列表,并使用自己的角色内置的成员资格提供。

我的模型和控制器都拿起用户和角色,但我有我的观点展示他们的麻烦。

型号

 公共类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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆