asp.net-mvc: ¿cómo creo una vista para mostrar a todos los usuarios no aprobados y permitir que sean aprobados?

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

  •  06-07-2019
  •  | 
  •  

Pregunta

tengo este código en mi clase de servicio de membresía (tomado de la aplicación de ejemplo 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;
    }

ahora necesito una vista para mostrar esta lista de información y permitir que alguien los apruebe, lo que volverá al controlador y establecerá la propiedad IsApproved en verdadero.

¿Fue útil?

Solución

Cree una vista que generará un formulario que contenga etiqueta y casilla de verificación para cada miembro de la colección. Debe poder acceder al usuario desde la identificación de la casilla de verificación.

En el método de Acción HTTP.POST, recorra los campos enviados buscando casillas de verificación establecidas, cuando encuentre una que el usuario correspondiente haya aprobado.

Obviamente, el formulario puede mostrar detalles arbitrarios para cada usuario.

Usar los ayudantes de control incorporados requiere un poco más de esfuerzo porque no tiene un modelo de tamaño fijo para trabajar. Para lograr algo similar, yo:

  • Usó una vista no fuertemente tipada
  • poblado ViewData["ids"] con IEnumerable<IdType> (que la vista se repetirá)
  • Para cada entrada poblada ViewData["field" + id] para cada campo que estaba mostrando en la entidad
  • En la vista en bucle sobre los identificadores using ViewData["ids"] para llamar a los ayudantes HTML con la identificación del campo.

(Eso fue V1, en V2 utilicé el estado del modelo para poder usar el soporte de visualización de error de validación incorporado, pero eso realmente no se aplica si solo desea seleccionar usuarios).

El procesamiento POST fue similar, repoblando la lista de identificación de la base de datos y buscando en el FormCollection.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top