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"];
это поможет вам