157 votos

¿Cuál es la página de ciclo de vida "de una página de ASP.NET MVC, en comparación con WebForms ASP.NET?

¿Qué es el 'ciclo de vida de página " de una ASP.NET MVC página, en comparación con ASP.NET WebForms?

Estoy tratando de entender mejor este " simple " pregunta en orden a determinar si o no existentes en las páginas que tengo en un (muy) simple sitio web puede ser fácilmente convertidos a partir de ASP.NET WebForms.

Ya sea una 'conversión' del proceso a continuación, o una alternativa de ciclo de vida sería lo que yo estoy buscando.

Lo que estoy haciendo actualmente:

(sí, sé que a toda persona capaz de responder a mi pregunta ya sabe todo esto ... estoy tratando de obtener una comparativa de las 'ciclo de vida', así que pensé en comenzar por llenar en lo que ya todos sabemos)

La visualización de la página:

  • Tengo una página principal que contiene mi plantilla básica
  • He páginas de contenido que me dan regiones nombradas desde la página principal en la que se le pone contenido.
  • En un controlador de eventos para cada contenido de la página me carga los datos de la base de datos (en su mayoría sólo lectura).
  • Yo enlazar estos datos para ASP.NET controles de representación de las cuadrículas, menús desplegables o repetidores. Estos datos todas las vidas dentro del HTML generado. Algunos de ellos se queda en ViewState (pero no me voy a ir a que demasiado!!!)
  • I conjunto de propiedades o enlazar datos a ciertos elementos como la Imagen o los controles de cuadro de texto en la página.
  • La página que se envía al cliente prestados como no reutilizables HTML.
  • Yo intente evitar el uso de ViewState distinto de lo que la página necesita como mínimo.

Del lado del cliente (no usar ASP.NET AJAX):

  • Me puede el uso de JQuery y algunos trucos sucios para controles de búsqueda de la página y realizar operaciones sobre ellos.
  • Si el usuario selecciona de una lista desplegable -- una devolución de datos que se genera, lo cual desencadena un C# evento en mi código subyacente. Este evento puede ir a la base de datos, pero lo hace de una forma completamente nueva de la página HTML generada termina siendo enviado de vuelta al cliente.
  • Me Page.Session para almacenar el valor de la clave de pares necesito volver a utilizar más adelante

Así que con MVC ¿cómo funciona este 'ciclo de vida' cambio?

39voto

Mike Glenn Puntos 1474

Voy a intentar comentar sobre cada uno de los puntos que usted ha mencionado:

Su maestro páginas todavía existen en MVC y se utilizan para proporcionar un diseño consistente para el sitio. no hay mucho nuevo que hay.

Sus páginas de contenido se convertirán en puntos de vista en el MVC mundo. Ellos siguen proporcionando las mismas áreas de contenido a sus páginas principales.

El eventhandling de webforms no debe ser utilizado en MVC, en lugar de su Controlador de las clases y sus métodos de acción va a gestionar la carga de los datos en un "modelo" que se pasa a la vista.

Aunque webform estilo de enlace de datos es posible en MVC, me parece que no es la solución óptima. Mejor colocar los datos en un modelo de clase y fuertemente escriba su opinión por lo que usted tiene acceso directo a ese modelo. Luego simplemente una cuestión de usar la <%= ViewData.Model.SomeProperty %> de sintaxis para acceder a los datos y mostrarlos en las ubicaciones deseadas. Como para viewstate, mi recomendación es que te olvides de que siquiera existe.

Recuerda que una de las ventajas de utilizar MVC es que usted tiene el control sobre el HTML que se envía al cliente. El abrazo que el poder y tratar de encontrar soluciones que le permiten mantener ese control. Webform controles intento de ocultar el código html de usted y, como tales, hacen que sea más difícil para personalizar el html cuando lo necesite.

Recomiendo el JQuery o uno de los otros del mismo modo poderoso de bibliotecas de javascript. Pero aprender a usar para acceder al DOM de HTML directamente y evitar la identificación de daños en cuestiones de controles de formulario web.

Usted puede usar jquery para enganchar en la lista desplegable de selección en el lado del cliente y presentar estándar o ajax estilo de solicitudes. Aquellos solicitud de devolución de las páginas nuevas, redirecciones, fragmentos de html o incluso JSON de datos que pueden ser usados para actualizar la página existente.

El asp.net la Sesión puede ser utilizado como sea necesario.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: