GetAllUsers - MVC

时间:2010-05-05 14:19:10

标签: asp.net-mvc

我正在使用会员提供商,并希望使用GetAllUsers功能显示所有用户及其名字,姓氏等的列表。

我无法理解如何在MVC中实现此功能。

有没有人在MVC中实现过这个,或者有更简单的方法列出我的应用程序中的所有用户?

任何帮助或建议都会非常有用。

控制器

public ActionResult GetUsers()
{
    var users = Membership.GetAllUsers();
    return View(users);
}

查看模型

public class GetUsers
    {
        [Required]
        [DisplayName("User name")]
        public string UserName { get; set; }

        [Required]
        [DisplayName("User name")]
        public string FirstName { get; set; }
    }

查看

<%= Html.Encode(item.UserName) %>

错误

传递到字典中的模型项的类型为'System.Web.Security.MembershipUserCollection',但此字典需要类型为'System.Collections.Generic.IEnumerable`1 [Account.Models.GetUsers]'的模型项

3 个答案:

答案 0 :(得分:3)

查看

Inherits="System.Web.Mvc.ViewPage<MembershipUserCollection>"

<ul>
       <%foreach (MembershipUser user in Model){ %>

       <li><%=user.UserName %></li>

       <% }%>
</ul>

<强>控制器

public ActionResult Admin()
        {
            var users = Membership.GetAllUsers();
            return View(users);
        }

答案 1 :(得分:2)

你遇到的困难是什么? GetAllUsers方法只返回一组用户,然后您可以手动显示这些用户,或者使用来自Telerik等供应商的网格组件。

类似的东西:

<% foreach(var user in Membership.GetAllUsers()) { %>
   <p>Name: <%= user.UserName %></p>
<% } %>

显然,请注意文档中的警告:

  

使用GetAllUsers时要小心   用户数据库非常大的方法,   由此产生   MembershipUserCollection在你的   ASP.NET页面可能会降低   你的申请表现。

有一个重载可以让你做分页来解决这个问题: - )

答案 2 :(得分:1)

@Jemes,您遇到的问题是您将System.Web.Security.MembershipUserCollection作为模型传递给视图,并指定视图模型的类型为Account.Models.GetUsers。将类型更改为System.Web.Security.MembershipUserCollection。但是,如果您在解决方案中使用默认的成员资格提供程序,则由于MembershipUser类没有FirstName属性,因此您将无法使用First Name。