Entender cuándo y por qué usar Razor Pages
En esta unidad, aprenderá cuándo y por qué usar Razor Pages para la aplicación ASP.NET Core.
Concepto de Razor Pages y las ventajas que proporciona
Razor Pages es un modelo de programación centrado en páginas en el lado servidor para crear interfaces de usuario web con ASP.NET Core. Razor Pages ofrece las ventajas siguientes:
- Facilita empezar a compilar aplicaciones web dinámicas cuando lo único que se necesita es definir la lógica de la interfaz de usuario mediante una combinación de HTML, CSS y C#.
- Fomenta la organización de archivos por característica, lo que facilita el mantenimiento de la aplicación.
- Se puede describir ampliamente como un archivo HTML en el que se trabaja con el marcado de la misma forma en que está acostumbrado a hacerlo. También tiene la ventaja de agregar código de C# del lado servidor mediante la sintaxis Razor.
En Razor Pages se usa un lenguaje de marcado denominado Razor para insertar código basado en servidor en las páginas web. La sintaxis Razor es una combinación de HTML y C# donde el código de C# define la lógica de representación dinámica de la página. En una página web en la que se usa la sintaxis Razor puede haber dos tipos de contenido: el contenido cliente y el código de servidor:
- Contenido cliente: contiene lo que se usa en las páginas web: marcado HTML (elementos), información de estilo como CSS, posiblemente algún script de cliente como JavaScript, y texto sin formato.
- Código de servidor: Razor permite agregar código de servidor al contenido cliente. Si hay código de servidor en la página, el servidor lo ejecuta primero, antes de enviar la página al explorador. Al ejecutarse en el servidor, el código puede realizar tareas más complejas que usar solo el contenido cliente. Por ejemplo, el acceso seguro a bases de datos. Lo más importante es que el código de servidor puede crear el contenido cliente de forma dinámica; puede generar marcado HTML u otro contenido, y enviarlo al explorador junto con cualquier código HTML estático que pueda contener la página. Desde la perspectiva del explorador, el contenido cliente generado en el servidor no es diferente de otro contenido cliente.
Separación de intereses en PageModel
Razor Pages aplica la separación de intereses para las propiedades de datos relacionadas con las páginas y las operaciones lógicas en una clase PageModel de C#. Un objeto de modelo normalmente define las propiedades de datos y encapsula cualquier lógica u operaciones relacionadas con esas propiedades de datos. Más específicamente, un PageModel:
- Encapsula las propiedades de datos y operaciones lógicas que se limitan a su página de Razor.
- Define controladores de página para las solicitudes HTTP enviadas a la página y para los datos que se usan para representarla.
Cuándo usar Razor Pages
Use Razor Pages en la aplicación ASP.NET Core cuando:
- Quiera generar una interfaz de usuario web dinámica desde la aplicación ASP.NET Core.
- Prefiera un enfoque centrado en páginas para desarrollar aplicaciones web, donde el marcado de la página y
PageModelestén cerca. - Quiere que la aplicación ASP.NET Core centrada en páginas use mecanismos — de vistas parciales para reducir la duplicación del marcado común en todo el sitio.
Razor Pages permite mantener las páginas ASP.NET Core organizadas de forma más sencilla:
- Todas las propiedades de página y lógica específicas de la vista (página) definidas en la clase (
PageModel) de la página de Razor se pueden mantener juntas en su propio espacio de nombres y directorio. - Los grupos de páginas relacionadas se pueden mantener en su propio espacio de nombres y directorio.
Nota
ASP.NET Core también admite el patrón MVC para compilar aplicaciones web. El modelo define los comportamientos fundamentales y los datos de la aplicación y sus componentes. La vista usa HTML y sintaxis Razor para proporcionar la interfaz de usuario. El controlador es una clase que recibe solicitudes HTTP y controla las acciones del usuario.
Use ASP.NET Core MVC cuando prefiera compilar aplicaciones web con una separación clara entre el modelo, la vista y el controlador.
Razor Pages se ha creado con la misma infraestructura que MVC de ASP.NET. Tanto Razor Pages como MVC se pueden usar dentro de la misma aplicación ASP.NET Core. ASP.NET Core MVC está fuera del ámbito de este módulo.
Comprobación de conocimientos
¿Necesita ayuda? Consulte nuestra guía de solución de problemas o notifique un problema para enviar comentarios específicos.