ASP.NET MVC Список всех пользователей - PullRequest
15 голосов
/ 17 мая 2009

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

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

Ответы [ 5 ]

29 голосов
/ 17 мая 2009

Вы должны настроить представление для принятия объекта типа 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>
3 голосов
/ 17 мая 2009

В верхней части страницы просмотра необходимо указать тип страницы просмотра. IE:

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

Inherits="System.Web.Mvc.ViewPage"

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

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

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

0 голосов
/ 23 августа 2013

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

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

0 голосов
/ 17 мая 2009

Звучит так, как будто вам нужно сделать просмотр строго типизированным. Ваше мнение должно быть производным от ViewPage<MembershipUserCollection> вместо ViewPage. Другое решение состоит в том, чтобы преобразовать вашу модель в MembershipUserCollection, по вашему мнению:

<% var members = (MembershipUserCollection) ViewData.Model %>
<% foreach (MembershipUser user in members) { %>
       <%-- Do Stuff with the user --%>
<% } %>
0 голосов
/ 17 мая 2009

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

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

...