Список всех пользователей ASP.NET MVC

Я пытаюсь показать список всех пользователей, но не знаю, как это сделать, используя модель MVC.

Я могу получить список всех пользователей с помощью метода Membership.GetAllUsers(), однако, если я попытаюсь передать его в представление из ActionResult, мне сообщат, что модель не перечислима.


person Jamie Dixon    schedule 17.05.2009    source источник
comment
Спасибо всем за помощь. Я новичок в этом материале MVC и не понимал, что могу сильно напечатать модель. Ваше здоровье !!   -  person Jamie Dixon    schedule 17.05.2009
comment
С ASP.NET MVC 4 и SimpleMembershipProvider Membership.GetAllUsers() не поддерживается. Вместо этого используйте using (var ctx = new UsersContext()) { var users = ctx.UserProfiles.ToList(); }   -  person Aaron Hoffman    schedule 24.07.2013


Ответы (5)


Вы должны настроить View так, чтобы он принимал объект типа MembershipUserCollection.

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MembershipUserCollection>" %>

В вашем действии:

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

то вы можете написать в своем представлении что-то вроде:

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

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

       <% }%>
</ul>
person Community    schedule 17.05.2009
comment
похоже, он не работает в MVC4 в моем приложении - person Dashrath; 12.07.2017

На странице просмотра вверху вам необходимо установить тип страницы просмотра. IE:

В верхней части представления, в первой строке разметки, вы увидите что-то вроде этого:

Inherits="System.Web.Mvc.ViewPage"

Измените это на:

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

или любой другой тип, который вы пытаетесь передать в представление. Объект «Модель» теперь будет иметь тип MembershipUserCollection, который вы можете безопасно перебирать.

person BFree    schedule 17.05.2009

[Изменить] В частности, как выглядит представление (например, что оно ожидает получить в качестве модели, как вы анализируете коллекцию и т. д.)

Можете ли вы опубликовать код? Я делаю что-то подобное, но у меня нет проблем.

person nkirkes    schedule 17.05.2009

Похоже, вам нужно сделать свой вид строго типизированным. Сделайте так, чтобы ваше представление производилось от ViewPage<MembershipUserCollection> , а не только от ViewPage. Другим решением является приведение вашей модели к MembershipUserCollection в вашем представлении:

<% var members = (MembershipUserCollection) ViewData.Model %>
<% foreach (MembershipUser user in members) { %>
       <%-- Do Stuff with the user --%>
<% } %>
person Anthony Conyers    schedule 17.05.2009

Попробуйте объект приложения asp.net

        string id = Session.SessionID.ToString();
        String[] users = new String[1000];
        users = (string[])Application["users"];
        int count=0;
        for (int d=0;1000 >d ;d++ )
        {
            if (users == null) { users = new String[1000]; }
            count = d;
            if (users[d] == null) { break; }
        }
        users[count] = id;
        Application["users"] = users;
        string[] usersTable = (string[])Application["users"];
        for (int d=0;1000 >d ;d++ )
        {
            if (usersTable[d] == null) { break; }
        Label1.Text += usersTable[d].ToString()+" | ";

добавить в код объекта приложения

        Application["users"] = users;

извлечь из объекта приложения

        string[] usersTable = (string[])Application["users"];

это поможет тебе

person Sajith Dushmantha Samarathunga    schedule 23.08.2013