Entender las aplicaciones auxiliares de etiquetas y los controladores de página

Completado

En la unidad anterior, ha creado una página de Razor que muestra una lista de pizzas. Ha usado el símbolo @ para cambiar de contexto entre HTML y C#. En esta unidad, obtendrá información sobre las aplicaciones auxiliares de etiquetas. Las aplicaciones auxiliares de etiquetas son un tipo especial de elemento HTML que puede contener código de C#. También obtendrá información sobre los controladores de página. Los controladores de página son métodos que controlan las solicitudes del explorador. Usará controladores de página en la unidad siguiente para agregar y eliminar pizzas.

Aplicaciones auxiliares de etiquetas

Las aplicaciones auxiliares de etiquetas se usan para abordar las ineficacias del cambio de contexto entre HTML y C#. La mayoría de las aplicaciones auxiliares de etiquetas integradas de ASP.NET Core amplían los elementos HTML estándar. Las aplicaciones auxiliares de etiquetas proporcionan atributos adicionales del lado servidor para los elementos HTML, lo que aumenta su solidez.

Hay cuatro aplicaciones auxiliares de etiquetas que debe conocer para este proyecto: Parcial, Etiqueta, Entrada y Mensaje de resumen de la validación.

Asistente de etiquetas parciales

<partial name="_ValidationScriptsPartial" />

Inserta el contenido del archivo _ValidationScriptsPartial.cshtml en una página. El archivo _ValidationScriptsPartial.cshtml contiene JavaScript que se usa para validar la entrada de formularios, por lo que debe incluirse en cada página que contenga un formulario.

Aplicación auxiliar de etiquetas

<label asp-for="Foo.Id" class="control-label"></label>

Extiende el elemento HTML <label> estándar. Como muchas aplicaciones auxiliares de etiquetas, usa un atributo asp-for. El atributo acepta una propiedad de la clase PageModel. En este caso, el nombre de la propiedad Foo.Id de PageModel (específicamente, la cadena "Id"), se representará como el contenido de un elemento HTML <label>.

Aplicación auxiliar de etiquetas de entrada

<input asp-for="Foo.Id" class="form-control" />

De forma similar al ejemplo anterior, extiende el elemento HTML <input> estándar. También usa un atributo asp-for para especificar una propiedad PageModel. En este caso, el valor de la propiedad Foo.Id se representará como el atributo value de un elemento HTML <input>.

Asistente de etiquetas de resumen de validación

<div asp-validation-summary="All"></div>

La aplicación auxiliar de etiquetas de resumen de validación muestra un mensaje de validación para una única propiedad del modelo.

Nota

Elementos como las reglas de validación y los nombres para mostrar de propiedad se definen en la clase PageModel. Señalaremos dónde encontrarlos en el código en la unidad siguiente.

Controladores de página

La clase PageModel define controladores de página para las solicitudes HTTP y los datos que se usan para representar la página. En el ejercicio anterior, la clase PizzaListModel controló la solicitud HTTP GET mediante el establecimiento del valor de la propiedad PizzaList en el valor de _service.GetPizzas().

Entre los controladores comunes se incluyen OnGet para la inicialización de página y OnPost para los envíos de formularios. Para controlar un HTTP POST, un controlador de página podría comprobar los datos enviados por el usuario, presentar de nuevo la página del formulario de entrada si carece de validez o enviar los datos válidos a un servicio o base de datos para su conservación.

En la unidad siguiente, agregará un formulario para crear pizzas nuevas con varias aplicaciones auxiliares de etiquetas. También agregará controladores de página para controlar el envío de formularios y la eliminación de pizzas.