2009-05-17 5 views
15

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

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

+0

Спасибо всем за помощь. Я новичок в этом материале MVC и не понимаю, что могу сильно набрать модель. Приветствия! –

+0

С ASP.NET MVC 4 и SimpleMembershipProvider 'Membership.GetAllUsers()' не поддерживается. Вместо этого используйте 'using (var ctx = new UsersContext()) {var users = ctx.UserProfiles.ToList(); } ' –

ответ

29

Вы должны установить 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> 
+0

он не работает в MVC4 в моем приложении – Dashrath

0

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

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

3

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

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

Inherits="System.Web.Mvc.ViewPage" 

Изменить что быть:

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

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

0

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

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

Try объекта приложения 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; 

retrive от Applicaton объекта

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

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

Смежные вопросы