Pregunta

En mi viaje hacia las profundidades del desarrollo de controles ASP.NET personalizados, obviamente estoy entendiendo el modelo ASP.NET PostBack y cómo afecta el desarrollo de controles.

Entiendo que los controles no tienen "vida útil" en ASP.NET y, por lo tanto, deben reinicializarse en todas y cada una de las cargas de página.Superamos esto manteniendo los valores/parámetros de los objetos en ViewState.

Por lo tanto, muchos artículos que leo sugieren no utilizar PostBack, ya que esto puede agregar una sobrecarga considerable a la página. No estoy buscando cómo desactivarlo, lo sé.

Lo que estoy buscando es:

¿Qué alternativas tenemos para utilizar el modelo PostBack para inicializar los controles?

se que nosotros podría use QueryString, pero eso parece terriblemente complicado y obviamente poco confiable.

Idealmente, podría darme una descripción general de la arquitectura/diseño de un enfoque diferente y sus ventajas y desventajas.

Muchas gracias ^_^

¿Fue útil?

Solución

Bueno, Session State es una solución del lado del servidor, con su propio montón de problemas con los que lidiar si quieres evitar ViewState por completo.Sin embargo, realmente usar ViewState en un control personalizado está muy bien; solo sea exigente con lo que almacena; solo almacene deltas del estado de control declarado, no almacene nada que vaya a recibir en la devolución de datos de todos modos (p. ej.desde una llamada de base de datos), etc.

Otros consejos

Debe almacenar los valores en algún lugar, por lo que está limitado a la cadena de consulta y los campos ocultos del formulario.Si lo relaciona con HTTP, básicamente son parámetros GET o POST.

Supongo que podrías usar cookies, pero eso sería muy complicado.

  1. Almacene el estado de su objeto en el contexto de la sesión:esto trasladará la carga de mantener el estado del cliente al servidor, lo que puede ser aceptable para aplicaciones de intranet a pequeña escala.Para sitios en Internet con I mayúscula, esto no funcionará;

  2. AJAX: habilite su control:en este caso, sólo indique cambios es necesario volver a publicarlo.Elegir el marco adecuado es clave aquí;ver http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ para el enfoque oficial de los EM;muchos otros son posibles.

Si realmente está buscando alternativas al modelo PostBack, le sugiero que investigue el marco ASP.NET MVC.Me encantaría dejar WebForms a un lado y hacer todas mis cosas en MVC, pero, por desgracia, el código heredado es un tarbaby y reescribir casi nunca es la respuesta, así que sigo adelante...

Creo que todavía malinterpretas un poco los controles.Los controles solo tienen el problema que usted describe cuando los agrega a la página dinámicamente.Si declara sus controles por adelantado en el código aspx, se construirán junto con la página.

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