asp.net-mvc - come posso creare una vista per mostrare tutti gli utenti non approvati e consentire loro di essere approvati

StackOverflow https://stackoverflow.com/questions/1212497

  •  06-07-2019
  •  | 
  •  

Domanda

Ho questo codice nella mia classe di servizio di appartenenza (tratto dall'app di esempio asp.net-mvc)

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

Ora ho bisogno di una vista per mostrare questo elenco di informazioni e consentire a qualcuno di approvarle che torneranno al controller e imposteranno la proprietà IsApproved su true.

È stato utile?

Soluzione

Crea una vista che genererà un modulo contenente etichetta e casella di controllo per ciascun membro della raccolta. Devi essere in grado di passare dall'ID della casella di controllo all'utente.

Nel metodo di azione HTTP.POST, scorrere i campi inviati cercando le caselle di controllo impostate, quando ne trovi uno impostato come utente approvato.

Ovviamente il modulo può visualizzare dettagli arbitrari per ciascun utente.

Per utilizzare gli helper di controllo integrati occorre un po 'più di sforzo perché non si dispone di un modello di dimensioni fisse con cui lavorare. Per ottenere qualcosa di simile I:

  • Utilizzata una vista non tipizzata fortemente
  • popolato ViewData["ids"] con IEnumerable<IdType> (su cui la vista verrebbe ripetuta)
  • Per ogni voce popolata ViewData["field" + id] per ogni campo che stavo visualizzando nell'entità
  • Nella vista passata sopra gli ID using ViewData["ids"] per chiamare gli helper HTML con l'id del campo.

(Era V1, in V2 ho usato lo stato del modello in modo da poter utilizzare il supporto di visualizzazione dell'errore di convalida integrato, ma ciò non si applica se si desidera selezionare solo gli utenti.)

L'elaborazione POST è stata simile, ripopolando l'elenco di ID dal database e la ricerca nel FormCollection passato

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top