que - ¿Cuál es el ''ciclo de vida de la página'' de una página ASP.NET MVC, en comparación con ASP.NET WebForms?
razor pages vs mvc (1)
Intentaré comentar sobre cada uno de los puntos que mencionaste:
Sus páginas maestras aún existen en MVC y se utilizan para proporcionar un diseño consistente para el sitio. no hay mucho nuevo allí.
Sus páginas de contenido se convertirán en vistas en el mundo de MVC. Aún proporcionan las mismas áreas de contenido para sus páginas maestras.
El manejo de eventos de formularios web no se debe usar en MVC, en su lugar las clases de Controlador y sus métodos de acción se encargarán de cargar sus datos en un "modelo" que se pasa a la vista.
Aunque el enlace de datos al estilo de formulario web es posible en MVC, considero que no es la solución óptima. Es mejor colocar sus datos en una clase de modelo y escribir fuertemente su vista para que tenga acceso directo a ese modelo. Entonces simplemente es cuestión de utilizar la sintaxis <%= ViewData.Model.SomeProperty %>
para acceder a sus datos y mostrarlos en las ubicaciones deseadas. En cuanto a viewstate, mi recomendación es olvidar que incluso existe.
Recuerde que una de las ventajas de usar MVC es que tiene control sobre el HTML que envía al cliente. Acepta ese poder y trata de encontrar soluciones que te permitan mantener ese control. Los controles de Webform intentan ocultar el html y, por lo tanto, hacen que sea más difícil personalizar el html cuando lo necesite.
Recomiendo encarecidamente JQuery o una de las otras bibliotecas javascript de gran potencia. Pero aprenda a usarlos para acceder al HTML DOM directamente y evite los problemas de identificación de identificadores de los controles de formularios web.
Puede usar jquery para enganchar en la selección desplegable del lado del cliente y enviar solicitudes de estilo estándar o ajax. Esas solicitudes pueden devolver páginas nuevas, redirecciones, fragmentos html o incluso datos JSON que se pueden usar para actualizar la página existente.
La sesión de asp.net se puede usar según sea necesario.
¿Cuál es el ''ciclo de vida de la página'' de una página ASP.NET MVC, en comparación con ASP.NET WebForms?
Estoy tratando de comprender mejor esta pregunta ''simple'' para determinar si las páginas existentes que tengo en un sitio (muy) simple pueden convertirse fácilmente desde ASP.NET WebForms.
O bien, una ''conversión'' del proceso a continuación, o un ciclo de vida alternativo sería lo que estoy buscando.
Lo que estoy haciendo actualmente:
(sí, sé que cualquiera que sea capaz de responder a mi pregunta ya sabe todo esto, solo estoy tratando de obtener una comparación del ''ciclo de vida'', así que pensé que comenzaría completando lo que todos ya sabemos)
Renderizar la página:
- Tengo una página maestra que contiene mi plantilla básica
- Tengo páginas de contenido que me dan regiones con nombre de la página maestra en la que pongo el contenido.
- En un controlador de eventos para cada página de contenido, cargo datos desde la base de datos (principalmente de solo lectura).
- Ato esto a los controles ASP.NET que representan cuadrículas, desplegables o repetidores. Esta información todo ''vive'' dentro del HTML generado. Parte de esto entra en ViewState (¡pero no entraré demasiado en eso!)
- Establezco propiedades o unir datos a ciertos elementos, como controles de imagen o cuadro de texto en la página.
- La página se envía al cliente como HTML no reutilizable.
- Intento evitar el uso de ViewState además de lo que la página necesita como mínimo.
El lado del cliente (no usa ASP.NET AJAX):
- Puedo usar JQuery y algunos trucos desagradables para encontrar controles en la página y realizar operaciones en ellos.
- Si el usuario selecciona desde un menú desplegable, se genera una devolución de datos que desencadena un evento C # en mi código subyacente. Este evento puede ir a la base de datos, pero sea lo que sea que haga, una página HTML generada por completo acaba siendo enviada al cliente.
- Puedo usar Page.Session para almacenar los pares de valores clave que necesito volver a usar más tarde
Entonces, con MVC, ¿cómo cambia este ''ciclo de vida''?