开发者

GetAllUsers - MVC

开发者 https://www.devze.com 2022-12-29 01:04 出处:网络
I’m using the Membership Provider and would like to display a list of all the users and their First Name, Last Name etc using the GetAllUsers function.

I’m using the Membership Provider and would like to display a list of all the users and their First Name, Last Name etc using the GetAllUsers function.

I'm having trouble understanding how to implement this function in MVC.

Has anyone implemented this in MVC or is there an easier way to list all the users in my application?

Any help or advise would be really helpful.

Controller

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

View Model

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

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

View

开发者_开发问答
<%= Html.Encode(item.UserName) %>

Error

The model item passed into the dictionary is of type 'System.Web.Security.MembershipUserCollection', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[Account.Models.GetUsers]'.


View

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

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

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

       <% }%>
</ul>

Controller

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


What's the difficulty you have with it? the GetAllUsers method simply returns a collection of users that you can then display ... either manually, or using a grid component from a vendor like Telerik.

something like:

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

Obviously, heed the warning in the documentation:

Be careful when using the GetAllUsers method with very large user databases, as the resulting MembershipUserCollection in your ASP.NET page may degrade the performance of your application.

There is an overload which lets you do paging to get around this :-)


@Jemes, the problem you're having is that you're passing a System.Web.Security.MembershipUserCollection as the model to your view and you specified that the model of your view was of type Account.Models.GetUsers. Change the type to System.Web.Security.MembershipUserCollection. However, if you're using the default Membership provider in your solution, you will not have the First Name available as the MembershipUser class doesn't have a FirstName property.

0

精彩评论

暂无评论...
验证码 换一张
取 消