2009-07-31 11 views
0

ich diesen Code habe in meiner Mitgliedschaft Service-Klasse (von der asp.net-mvc Beispielanwendung genommen) genehmigt werdenasp.net-mvc - Wie erstelle ich einen Blick alle nicht zugelassene Benutzer zu zeigen und sie

public MembershipUserCollection GetUnapprovedUsers() 
    { 
     MembershipUserCollection users = Membership.GetAllUsers(); 
     MembershipUserCollection unapprovedUsers = new MembershipUserCollection(); 
     foreach (MembershipUser u in users) 
     { 
      if (!u.IsApproved) 
      { 
       unapprovedUsers.Add(u); 
      } 
     } 
     return unapprovedUsers; 
    } 

ich brauche jetzt eine Ansicht, um diese Liste von Informationen anzuzeigen und jemandem zu erlauben, sie zu genehmigen, die zurück zum Kontroller gehen und die IsApproved Eigenschaft auf wahr setzen.

+0

Können Sie den Code, den Sie versucht haben, teilen und beschreiben, wie es nicht funktioniert. – Lazarus

+0

um ehrlich zu sein, ich kämpfe, wo ich anfangen soll. Wie kann die Ansicht diesen Code aufrufen und diese Liste von Benutzern abrufen? Ich versuche herauszufinden, wie die Ansicht mit dem Controller – leora

Antwort

1

Erstellen Sie eine Ansicht, die ein Formular mit Label und Kontrollkästchen für jedes Mitglied der Sammlung generiert. Sie müssen in der Lage sein, von der ID des Kontrollkästchens zum Benutzer zu gelangen.

In der HTTP.POST-Aktionsmethode durchlaufen Sie die übermittelten Felder, die nach festgelegten Kontrollkästchen suchen. Wenn Sie einen gefunden haben, setzen Sie den entsprechenden Benutzer auf "approved".

Offensichtlich kann das Formular beliebige Details für jeden Benutzer anzeigen.

Die Verwendung der eingebauten Kontrollhelfer erfordert etwas mehr Aufwand, da Sie kein Modell mit fester Größe zum Arbeiten haben. Um etwas Ähnliches ich zu erreichen:

  • verwendet, um eine nicht-stark typisierte Ansicht
  • bevölkert ViewData["ids"] mit IEnumerable<IdType> (die die Sicht würde eine Schleife über)
  • Für jeden Eintrag bevölkerten ViewData["field" + id] für jedes Feld I wurde die Anzeige in der Entität
  • In der Ansicht über die IDs using ViewData["ids"] geloopt, um die HTML-Helfer mit der ID des Feldes aufzurufen.

(Das war V1, V2 in benutzte ich Modellzustand so konnte ich die eingebaute Validierungsfehler Display-Unterstützung verwenden, aber das gilt nicht wirklich, wenn Benutzer nur auswählen möchten.)

Der POST Verarbeitung war ähnlich, repopulating die ID-Liste aus der Datenbank und das Nachschlagen in der übergebenen FormCollection.

+0

verknüpfen die Frage ist, wie bekomme ich die Aussicht, dies vom Controller anfordern. hafte ich einfach in ViewData – leora

+0

Ja (oder ModelData, obwohl das ist schwieriger zu verwenden). – Richard

+0

@oo: Die Ansicht sollte nichts von überall anfordern. Der View sollte ** alle erforderlichen Daten ** erhalten. – JoshJordan