Entender auxiliares de marca e manipuladores de página

Concluído

Na unidade anterior, você criou uma página Razor que exibe uma lista de pizzas. Você usou o símbolo @ para alternar contextos entre HTML e C#. Nesta unidade, você aprenderá sobre os auxiliares de marca. Auxiliares de marca são um tipo especial de elemento HTML que pode conter código C#. Você também aprenderá sobre manipuladores de página. Manipuladores de página são métodos que lidam com solicitações do navegador. Você usará manipuladores de página na próxima unidade para adicionar e excluir pizzas.

Auxiliares de marca

Auxiliares de marca são usados para lidar com as ineficiências da alternância de contexto entre HTML e C#. A maioria dos auxiliares de marca internos do ASP.NET Core estende elementos HTML padrão. Os auxiliares de marca fornecem atributos adicionais do lado do servidor para elementos HTML, tornando-os mais robustos.

Você deve conhecer quatro auxiliares de marca para este projeto: Parcial, Rótulo, Entrada e Mensagem de Resumo de Validação.

Auxiliar de marca parcial

<partial name="_ValidationScriptsPartial" />

Isso injeta o conteúdo do arquivo _ValidationScriptsPartial.cshtml em uma página. O arquivo _ValidationScriptsPartial.cshtml contém JavaScript usado para validar a entrada do formulário, portanto, ele precisa ser incluído em cada página que contém um formulário.

Auxiliar de marca de rótulo

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

Isso estende o elemento HTML <label>. Como muitos auxiliares de marcas, ele utiliza um atributo asp-for. O atributo aceita uma propriedade do PageModel. Nesse caso, o nome da propriedade Foo.Id de PageModel (especificamente, a cadeia de caracteres "Id") será renderizado como o conteúdo de um elemento HTML <label>.

Auxiliar de marca de entrada

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

Semelhante ao exemplo anterior, estende o elemento HTML padrão <input>. Ele também usa um atributo asp-for para especificar uma propriedade PageModel. Nesse caso, o valor da propriedade Foo.Id será renderizado como o atributo value para um elemento HTML <input>.

Resumo de validação de auxiliar de marcação

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

O Auxiliar de Marca de Resumo de Validação exibe uma mensagem de validação para uma propriedade no modelo.

Observação

Coisas como regras de validação e nomes de exibição de propriedade são definidos na classe PageModel. Indicaremos onde encontrá-los no código na próxima unidade.

Manipuladores de página

A classe PageModel define manipuladores de página para solicitações HTTP e dados usados na renderização da página. No exercício anterior, a classe PizzaListModel tratou a solicitação HTTP GET definindo o valor da propriedade PizzaList como o valor de _service.GetPizzas().

Manipuladores comuns incluem OnGet para inicialização de página e OnPost para envios de formulário. Para lidar com uma postagem HTTP, um manipulador de página pode verificar os dados enviados pelo usuário, apresentar a página do formulário de entrada novamente se for inválida ou enviar os dados válidos para um serviço ou banco de dados para persistência.

Na próxima unidade, você adicionará um formulário para criar pizzas usando vários auxiliares de marca. Você também adicionará manipuladores de página para lidar com o envio de formulários e a exclusão de pizzas.