Saltar al contenido

¿Cuál es la diferencia entre el ciclo de vida de la página Asp.net y el ciclo de vida de la página Asp.net Mvc?

Solución:

El ciclo de vida de la página ASP.NET es totalmente diferente de los formularios web, no hay eventos como los que tenemos en los formularios web, por ejemplo: pre render, oninit etc., siempre que solicitamos una URL, lo único que sucede es que se crea una instancia de un controlador y se llama a algún método de acción que da como resultado la visualización de la vista como HTML como respuesta en el navegador.

Ciclo de vida de la página ASP.NET MVC:

De acuerdo a MSDN los siguientes son los pasos principales involucrados en el ciclo de vida de la página asp.net mvc:

1) Enrutamiento

enruta la URL a su controlador y acción

En la aplicación ASP.NET, cada página asp.net implementa la interfaz IHTTPHandler.

Esta interfaz tiene un método ProcessRequest () que se llama cuando solicita la página. El método ProcessRequest () es responsable de procesar la solicitud y generar la respuesta. Entonces, en la aplicación ASP.NET es simple, solicita una página en la URL como http://mysite1default.aspx y luego busca esa página en el disco y ejecuta el método processrequest y genera la respuesta.

Sin embargo, en la aplicación MVC no funciona de esa manera. No existe una página física para una solicitud en particular. Todas las solicitudes se enrutan a una clase especial llamada Controlador. El controlador es responsable de generar la respuesta y enviar el contenido al navegador.

2) El módulo de enrutamiento de URL intercepta la solicitud:

Siempre que realiza una solicitud contra una aplicación ASP.NET MVC, la solicitud es interceptada por el módulo HTTP UrlRoutingModule.

Cuando UrlRoutingModule intercepta una solicitud, lo primero que hace el módulo es envolver el HttpContext actual en un objeto HttpContextWrapper.

El objeto HttpContextWrapper se deriva de la clase HTTPContextBase.

3) Ejecuta el controlador MVC

MVCHandler también hereda de IHTTPAsyncHandler. Cuando MVC Handler se ejecuta, llamará al método BeginProcessRequest de httpAsyncHandler de forma asincrónica.

Cuando se llama al método de solicitud de proceso, se crea un nuevo controlador. El controlador se crea a partir de ControllerFactory. Hay una clase ControllerBuilder que configurará ControllerFactory.

También puede crear su propia ControllerFactory, pero de forma predeterminada será DefaultControllerFactory. El RequestContext y el nombre del Contoller se pasarán al método CreateController Method para obtener el Contoller en particular.

4) El controlador se ejecuta

Se llama al controlador y el usuario solicita su acción.

El método Execute () comienza creando el objeto TempData. TempData es un diccionario derivado de la clase TempDataDictionary y almacenado en sesiones de corta duración y es una clave de cadena y un valor de objeto.

El método Execute () obtiene la acción de RouteData en función de la URL. La clase de controlador luego llama al ContollerActionInvoker que crea una lista de parámetros a partir de la solicitud.

Estos parámetros, extraídos de los parámetros de solicitud, actuarán como parámetros de método. Los parámetros se pasarán a cualquier método de controlador que se ejecute.

Finalmente, llamará al método InvokeAction para ejecutar la acción.

5) Método de vista de renderizado llamado

por fin cuando llamamos reutrn View() Se llama al método Render View y coloca la respuesta en la página que se mostrará.

El controlador normalmente ejecuta el método RedirectToAction o el método RenderView. Cuando llama al método RenderView () de un controlador, la llamada se delega al método RenderView () del ViewEngine actual.

El método WebFormViewEngine.RenderView () usa una clase llamada clase ViewLocator para encontrar la vista. A continuación, utiliza un BuildManager para crear una instancia de una clase ViewPage a partir de su ruta.

A continuación, si la página tiene una página maestra, se establece la ubicación de la página maestra. Si la página tiene ViewData, se establece ViewData. Finalmente, se llama al método RenderView () en ViewPage.

Diagrama de explicación abstracta:

ingrese la descripción de la imagen aquí

En diagrama de profundidad:

ingrese la descripción de la imagen aquí

Solicitar flujo “

Aquí está el flujo de solicitud asp.net mvc:

ingrese la descripción de la imagen aquí

Enlaces de referencia

Para conocer los detalles, consulte Comprensión del ciclo de vida de la página MVC

También Aquí hay otro buen artículo que explica el ciclo de vida de la página MVC

Formularios web ASP.NET

  • ASP.NET Web Forms usa el enfoque de patrón de controlador de página para representar el diseño. En este enfoque, cada página tiene su propio controlador, es decir, un archivo de código subyacente que procesa la solicitud.
  • Para lograr un comportamiento con estado, se usa viewstate. El propósito era brindar a los desarrolladores la misma experiencia de una aplicación típica de WinForms.

ASP.NET MVC

  • Utiliza el enfoque del controlador frontal. Ese enfoque significa que un controlador común para todas las páginas procesa las solicitudes.

  • El enfoque ASP.NET MVC es sin estado como el de la web. Por tanto, no existe el concepto de estado de vista.

Pero en realidad en MVC no hay un ciclo de vida de la página per se (porque no hay un objeto ‘página’), pero hay una canalización de procesamiento de solicitudes:

¿Podría recibir ayuda de aquí una descripción agradable o consultar MVC4 y el ciclo de vida de la página?

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *