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

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

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

Ответы

Ответ 1

Вы должны установить представление, чтобы принять объект типа 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>

Ответ 2

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

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

Inherits="System.Web.Mvc.ViewPage"

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

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

или независимо от типа, который вы пытаетесь передать в представление. Объект "Модель" теперь будет иметь тип MemberhipUserCollection, который можно безопасно перебрать.

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

Попробуйте объект приложения 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"];

это поможет вам