A personalização de Tag Helpers no ASP.NET Core envolve a criação de suas próprias classes de Tag Helper para estender a funcionalidade de Tag Helpers existentes ou implementar novos comportamentos específicos para suas necessidades. Isso permite que você adapte o comportamento dos elementos HTML aos requisitos do seu aplicativo e aprimore a experiência geral de desenvolvimento.
Etapas para personalizar Tag Helpers:
- Criar uma classe Tag Helper:
- Defina uma classe que herde da classe
TagHelper
ou implemente a interfaceITagHelper
. - Nomeie a classe seguindo a convenção
<tagName>TagHelper
, onde<tagName>
é a tag HTML que você deseja direcionar.
- Defina uma classe que herde da classe
- Substituir o método
ProcessAsync
:- Implemente o método
ProcessAsync
para modificar a saída HTML e executar a lógica do lado do servidor relacionada à tag. - Acesse os atributos e o conteúdo da tag usando os objetos
TagHelperContext
eTagHelperOutput
, respectivamente.
- Implemente o método
- Definir atributos e propriedades:
- Use o atributo
HtmlAttributeName
para especificar os nomes dos atributos HTML que mapeiam para propriedades em sua classe Tag Helper. - As propriedades devem ter nomes de atributos HTML correspondentes no formato kebab-case.
- Use o atributo
- Modificar a saída HTML:
- Use o objeto
TagHelperOutput
para manipular a saída HTML gerada pela tag. - Você pode definir a propriedade
TagName
para alterar o nome da tag, adicionar ou modificar atributos e definir a propriedadeContent
para inserir conteúdo dentro da tag.
- Use o objeto
- Registrar o Tag Helper:
- Adicione a classe Tag Helper ao atributo
TagHelpers
assembly em seu arquivoAssemblyInfo.cs
do projeto. - Inclua o pacote NuGet
Microsoft.AspNetCore.Mvc.TagHelpers
para acessar os Tag Helpers integrados. - Use a diretiva
addTagHelper
em suas visualizações Razor para habilitar o Tag Helper personalizado.
- Adicione a classe Tag Helper ao atributo
Exemplo: EmailTagHelper
personalizado:
Usando o Tag Helper personalizado:
Este EmailTagHelper
personalizado converterá a tag <email>
em uma tag <a>
com um link mailto:
com base no atributo asp-address
fornecido.
Dicas adicionais:
- Utilize o
tagHelperContext
para acessar informações contextuais, como o contexto de exibição atual ou dados de rota. - Aproveite o
tagHelperOutput
para manipular vários aspectos da saída HTML, incluindo atributos, conteúdo e elementos circundantes. - Crie classes base reutilizáveis para funcionalidade comum do Tag Helper e estenda-as para necessidades específicas.
- Teste seus Tag Helpers personalizados cuidadosamente para garantir que se comportem conforme o esperado e não introduzam efeitos colaterais indesejados.
Seguindo estas etapas e considerando as dicas adicionais, você pode personalizar efetivamente os Tag Helpers no ASP.NET Core para aprimorar a funcionalidade do seu aplicativo e melhorar a experiência de desenvolvimento.
Inclua no _viewImports.cshtml para que tudo funcione corretamente
Fonte: https://github.com/AdoreMedia/CalystoCore
Curso .NET 8 WEB API RESTful 2024 completa com EFCore 8
https://www.udemy.com/course/net-8-web-api-restful-2024-completa-com-efcore-8/?couponCode=ST8MT40924
Curso de Blazor .net 8 – 2024 com EntityFramework + C# Linguagem Básico e Avançado
https://www.udemy.com/course/curso-de-blazor-net-8-2024-com-entityframework/?couponCode=ST8MT40924