2009-05-17 19 views
15

Ich versuche, eine Liste aller Benutzer anzuzeigen, bin mir aber nicht sicher, wie Sie mit dem MVC-Modell darüber gehen.ASP.NET MVC Liste alle Benutzer

Ich kann die Liste aller Benutzer über die Membership.GetAllUsers()-Methode jedoch erhalten, wenn ich versuche, dies an die Ansicht von ActionResult zu übergeben, mir wurde gesagt, dass Model nicht aufzählbar ist.

+0

Vielen Dank für die Hilfe. Ich bin neu in diesem MVC-Zeug und wusste nicht, dass ich das Model stark typisieren könnte. Prost !! –

+0

Mit ASP.NET MVC 4 und dem SimpleMembershipProvider 'Membership.GetAllUsers()' wird nicht unterstützt. Verwenden Sie stattdessen 'using (var ctx = new UsersContext()) {var users = ctx.UserProfiles.ToList(); } ' –

Antwort

29

Sie haben die Ansicht festlegen ein Objekt vom Typ MembershipUserCollection

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

In Ihrer Aktion akzeptieren:

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

dann Sie Ihrer Meinung nach so etwas wie schreiben:

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

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

     <% }%> 
</ul> 
+0

es scheint nicht in MVC4 in meiner Anwendung zu arbeiten – Dashrath

0

[Bearbeiten] Insbesondere was macht der Blick aussehen wie (zum Beispiel, was es als das Modell zu erhalten erwarten, wie Sie die Sammlung parsen, etc.)

Können Sie einige Code schreiben? Ich mache etwas ähnliches, habe aber keine Probleme.

3

In Ihrer Ansichtsseite oben müssen Sie den Typ der Ansichtsseite festlegen. IE:

Auf der Oberseite Ihrer Ansicht, in der ersten Zeile des Markup, werden Sie etwas sehen:

Inherits="System.Web.Mvc.ViewPage" 

Änderung, der sein:

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

oder was auch immer Der Typ, den Sie an die Ansicht übergeben möchten. Das "Model" -Objekt wird nun vom Typ MembershipUserCollection sein, über den Sie sicher iterieren können.

0

Es klingt wie Sie Ihre Ansicht stark typisierte Ansicht machen müssen. Lassen Sie Ihre Ansicht von ViewPage<MembershipUserCollection> statt nur ViewPage ableiten. Eine andere Lösung ist Ihr Modell zu MembershipUserCollection Ihrer Ansicht nach werfen:

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

Try asp.net Anwendung Objekt

 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 von applicaton Objekt

zu Anwendungsobjektcode hinzufügen
 string[] usersTable = (string[])Application["users"]; 

dies wird Ihnen helfen

Verwandte Themen