Esto es lo que está en mi código subyacente:Mantener la lista genérica entre las devoluciones de datos
List<Event> events = new List<Event>();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void AddEvent_Click(object sender, EventArgs e)
{
Event ev = new Event();
ev.Name = txtName.Text;
events.Add(ev);
}
Quiero añadir un elemento a la lista cada vez que se hace clic en el botón Añadir, pero la lista se restablece después de cada devolución de datos . ¿Cómo puedo mantener los datos en la lista entre las devoluciones?
No es necesario asignar la lista de eventos a la propiedad Eventos, usted trabaja con referencias. Es la misma lista. –
@Alex Reibort: En realidad, en el getter está deserializando la instancia de la lista fuera del estado de la vista, en el setter está serializando la instancia nuevamente en el estado de vista. La instancia en el código es la misma, pero que desaparece entre las publicaciones posteriores, debe actualizar el estado de la vista después de que se modifique. – CodingGorilla
No, no es así. ViewState almacena deserializa su contenido antes de solicitar la lista, por lo que mantiene la referencia a la lista cuando accede, recupera la referencia, usa la actualización de la instancia y se guardará automáticamente en viewstate. Solo pruébalo. –