Individualschulungen
Entwicklung
Aktuelle Themen
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Benutzeroberflächen / User Experience
Softwareengineering
KI in der Softwareentwicklung
Plattformen & Systeme
KI
Web & Cloud
Apps / Mobilplattformen
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Scripting
Windows & Office für Anwender
Soft Skills & IT-Recht
Das bieten nur wir
Umfangreicher Themenkatalog
Wählen Sie aus 1055 Themen
Weiterbildungsphilosophie
Individuelle Anpassung an Ihre Anforderungen
Didaktische Konzepte
Ganz nach Ihren Wünschen
Vorteile individueller Firmenseminare
Im Vergleich zu offenen Seminaren
Vor Ort oder online
Alles ist in Ihrem Hause oder online möglich
Top-Trainer
Die besten und renommiertesten Experten
Teilnehmerfeedback
Das sagen 9311 von insgesamt über 75000 Teilnehmern
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
1055 Themen, die frei anpassbar und kombinierbar sind
Gesamter Themenkatalog →
Offene Schulungen
Online-Trainings
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI, Uno & Avalonia
Blazor
ASP.NET Core WebAPI
Entity Framework Core
Unit Testing / TDD
PowerShell
Alle Seminartermine
INFOTAGE
INFOTAG ".NET 12.0"
am 22.06.2027
INFOTAG "KI" 2027
am 15.09.2027
Das bieten nur wir
Renommierte Top-Trainer
Die besten und bekanntesten Experten schulen Sie!
Teilnehmerfeedback
Das sagen 9311 von insgesamt über 75000 Teilnehmern
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
Nicht das passende Thema dabei? Stellen Sie Ihre individuelle Firmenschulung aus 1055 Modulen zusammen!
Individualschulungen →
Beratung, Support & Entwicklung
Alle unsere Leistungen
Beratung
Beratung zu vielen technischen und methodischen Themen
Coaching
Projektbegleitende Unterstützung
Softwareentwicklung
Wir entwickeln einzelne Module oder ganze Anwendungen für Sie
Technischer Support
Support für einzelne technische Fragen
Individualschulungen
1055 Themen, die frei anpassbar und kombinierbar sind
Offene Seminare
Ausgewählte Themen bieten wir auch als öffentliche Online-Schulungen an.
Beratungsthemen
Anwendungsarchitektur
Datenbankzugriff/Data Access
DevOps
Frontend, GUI, UX
IT-Infrastruktur
Leistung/Performance
Machbarkeit und Prototyping
Methodik, Prozesse, Teamarbeit
Migration und Versionsumstieg
Mobilanwendungen
Reviews und Qualitätssicherung
Sicherheit/Security
Verteilte Systeme und Services
Webtechniken
Werkzeugauswahl
Weitere Themen
Auch alle Schulungsthemen sind als Beratung möglich!
Das bieten nur wir
Renommierte Top-Berater
Durch Vorträge und Veröffentlichungen sehr bekannte Experten
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
Referenzprojekte
Zahlreiche Referenzprojekte
Beratung vor Ort oder remote – flexibel nach Bedarf.
Zu den Beratungsthemen →
Wissen
Publikationen & Vorträge
Fachbücher
Fachartikel
Konferenzvorträge
Weblog
Spickzettel/Cheat Sheets
Lexikon/Glossar
Programmcodebibliothek
Fallbeispiele
Newsletter
Downloads
Themenportale
Übersicht
.NET/C#/Visual Studio
.NET 11.0
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Versionshistorie
Konferenzen/Events
Community-/Leserportal
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Schulungen, Beratung, Support, Coaching, Softwareentwicklung
Unsere kommerziellen Leistungen →
Über uns
Unternehmen
Zahlen
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Unsere Top-Experten
Leitung & Kundenteam
Partner
Weitere Websites
Referenzen
Referenzkunden
Kundenaussagen
Referenzprojekte
Kontakt & Rechtliches
Kontakt
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Impressum, Datenschutz und Barrierefreiheit unter Kontakt & Rechtliches.
Rechtliches →
Erklärung des Begriffs: Tag Helper
Zur Stichwortliste unseres Lexikons
Was ist
Tag Helper
?
Tag Helper sind Tags oder
Attribut
e für Tags in
Razor
Template
s, die von
ASP.NET Core
auf der Serverseite vor der Auslieferung der Website durch andere Tags oder Eigenschaften ersetzt werden. Tag Helper kann ein Webentwickler in Views (bei
ASP.NET Core
Model-View-Controller
–
MVC
) oder in Pages (bei
ASP.NET Core
Razor
Pages) einsetzen.
Dies ist vergleichbar mit den
Direktive
n in
Angular
; allerdings übersetzt
Angular
die
Direktive
n clientseitig (also erst im Browser) in Standard-HTML-Tags. Tag Helper nehmen eine ähnliche Rolle ein wie früher die
Webserver
steuerelemente in ASP.NET
Webforms
, sind aber in ihrer Implementierung wesentlich einfacher. Eine Entwurfszeitansicht gibt es hier nicht. Tag Helpers können sich auch auf Standard-HTML-Tags beziehen und diese modifizieren.
Vordefinierte Tag Helper
Microsoft liefert bereits eine Reihe eigener Tags, z.B.
<partial>
<cache> und
<environment>
sowie Tag-
Attribut
e (die mit der Vorsilbe "asp-" beginnen), z.B.
asp-controller und asp-action for <form>
asp-for für <label>, <input> und <select>
asp-append-version für <img>
asp-validation-for für <span>
in
ASP.NET Core
in der Microsoft.AspNetCore.Mvc.TagHelpers.dll mit.
Damit diese Tag Helper überhaupt nutzbar sind, müssen Sie mit @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers eingebunden werden. Dies erledigt Microsoft freundlicherweise in den Projektvorlagen "Web Application" und "Web Application (
MVC
)" schon in der Datei /Shared/_ViewImports.cshtml, die automatisch für jeden View geladen wird.
Listing 1 zeigt Tags mit "asp-" beginnenden Erweiterungsattributen (asp-for, asp-append-version, usw). Microsoft nennt diese Erweiterungsattribute sowie eigenständige neue Tags wie <environment> und <cache> in Listing 1 "Tag Helper". Sie sind eine elegante Alternative zu den bisherigen
HTML Helper
-Funktionen (z.B. @Html.
TextBox
For()), die es aber auch weiterhin gibt. Im Einzelnen bieten die in Listing 1 verwendeten Tag Helper folgende Funktionen:
asp-for:
Datenbindung
an ein
Property
aus dem Modell
asp-append-version: Anhängen eines
Hash
-Wertes für die Datei, der sich jedes Mal ändert, wenn sich die Datei ändert. So wird verhindert, dass der Benutzer wegen
Caching
im Browser nicht die aktuelle Datei sieht (Cache Busting).
<cache>: Zwischenspeicherung des Inhalts für die bei expires-after angegebene Zeitdauer.
<environment>: Ausgabe nur, wenn einer der Names genannten Umgebungen aktiv ist. Den Namen für die aktive Umgebung legt man in der Umgebungsvariablen ASPNETCORE
ENVIRONMENT fest. Mit diesem Tag Helper definiert Microsoft in der Standardlayoutvorlage in der Datei /Shared/
Layout.html, dass in den Umgebungen "Staging" und "Produktion", die Bootstrap-
CSS
-Datei im Standard aus dem
Content Delivery Network
(
CDN
) von Microsoft kommt.
Es gibt weitere eingebaute Tag Helper in der
Komponente
Microsoft.AspNetCore.Mvc.TagHelpers.dll. Damit die Tag Helper überhaupt nutzbar sind, müssen Sie mit @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers eingebunden werden. Dies erledigt Microsoft freundlicherweise in der Projektvorlage schon in der Datei /Shared/_ViewImports.cshtml, die automatisch für jeden View geladen wird.
Listing 1: Eingebaute Tag Helper
@model ITVisions.Autor
<html>
<h3>Autor #@Model.ID: @Model.Name</h3>
<img width="50" src="~/images/Foto_@(Model.Name.Replace(" ","")+".jpg")" asp-append-version="true" />
<input asp-for="Name" class="form-control" />
...
<div>
<cache expires-after="@TimeSpan.FromMinutes(10)">
Zuletzt aktualisiert @DateTime.Now.ToString().
</cache>
Dies ist die
<environment names="development">
Entwicklungsumgebung
!</environment>
<environment names="test1,test2">Testumgebung!</environment>
<environment names="produktion">Produktionsumgebung!</environment>
</div>
</html>
Eigene Tag Helper
Natürlich kann der Softwareentwickler eigene Tag Helper schreiben. Dazu erstellt er eine öffentliche Klasse, die von Microsoft.AspNetCore.
Razor
.TagHelpers.TagHelper erbt. Der Name der Klasse sollte konventionsgemäß auf TagHelper enden. Der vordere Teil wird dann zum Tagnamen, wobei Kebab
Casing
(alias Spinal
Casing
) Anwendung findet, d.h.
Aus der Klasse AutorTagHelper entsteht das Tag <autor>
Aus der Klasse DateTimeTagHelper entsteht das Tag <date-time/>
Wenn man einen anderen Tagnamen wünscht oder nicht ein eigenständiges Tag, sondern nur ein neues
Attribut
für ein bestehendes Tag definieren will, muss man die
Annotation
[HtmlTargetElement] verwenden.
Eine Tag Helper-Klasse kann öffentliche Properties anbieten, die zu Tag-
Attribut
en werden. Die Klasse überschreibt entweder die
Methode
n Process() oder ProcessAsync(). Diese
Methode
n erhalten im
Methode
nparameter über ein TagHelperContext-
Objekt
den aktuellen Elementnamen und Taginhalt; sie geben über das ebenfalls per Parameter übergebene
Objekt
TagHelperOutput den aktualisierten Inhalt zurück.
Die
Methode
nsignatur ist also entweder:
public override void Process(TagHelperContext context, TagHelperOutput output)
{
}
oder:
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
}
Die asynchrone Variante ist aus Gründen der besseren Skalierbarkeit zu bevorzugen.
Einbindung der eigenen Tag Helper
Voraussetzung für das Funktionieren aller hier dargestellten Tag Helper ist, dass die Tag Helper mit @addTagHelper eingebunden werden. Wenn die Tag Helper in dem Namensraum ITVisions und in der
DLL
-
Assembly
ITVTagHelper liegen, muss die Einbindung so erfolgen:
Einzelner Tag Helper
@addTagHelper "ITVisions.AutorTagHelper, ITVTagHelper" eingebunden
Alle Tag Helper in einem Namensraum
@addTagHelper "ITVisions*, ITVTagHelper"
Alle Tag Helper in einer
Assembly
@addTagHelper "*, ITVTagHelper"
Beispiel
Listing 2 zeigt das Beispiel des Tag Helpers <Autor>, das ein Autor-
Objekt
und eine Zahl (Size) als
Attribut
e besitzt und daraus eine Ausgabe in einem HTML-Header-Tag (<h1>, <h2>, <h3> usw.) erzeugt.
Somit kann man nun mit dem neuen Tag Helper anstelle von
<h3>Autor #@Model.ID: @Model.Name</h3>
die gekapselte Form verwenden:
<Autor size="3" autor="Model"></Autor>
sofern man vorher das Tag mit @addTagHelper "ITVisions.AutorTagHelper, ITVTagHelper" eingebunden hat, wobei der erste Parameter der Klassennamen und der zweite Parameter der
Assembly
name ist. Anstelle des Klassennamens kann man auch mit * alle Tag Helper einer
Assembly
einbinden.
Listing 2: Implementierung eines Tag Helpers für das eigene Tag <Autor>
using System;
using WindowsDeveloper;
using Microsoft.AspNetCore.
Razor
.TagHelpers;
namespace ITVisions
{
/// <summary>
/// Tag Helper <Autor autor="objekt" size="zahl 1 bis 5"></Autor>
/// </summary>
public class AutorTagHelper : TagHelper
{
/// <summary>
/// Komplexes
Objekt
als Parameter
/// </summary>
public Autor Autor { get; set; }
/// <summary>
/// Zahl als Parameter
/// </summary>
public byte Size { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (Size > 5) Size = 5;
output.TagName = "h" + Size.ToString();
output.Content.SetContent(
$@"Autor #{Autor.ID}: {Autor.Name}");
output.TagMode = TagMode.StartTagAndEndTag;
}
}
}
Querverweise zu anderen Begriffen im Lexikon
Content Delivery Network (CDN)
Model-View-Controller (MVC)
Entwicklungsumgebung
Datenbindung
ASP.NET Core
HTML Helper
Annotation
Komponente
Direktive
Webserver
Property
Assembly
Template
Attribut
Webforms
Methode
Angular (NG)
TextBox
Caching
Objekt
Casing
Razor
Hash
Cascading Style Sheet (CSS)
Model-View-Controller Framework (MVC)
Dynamic Link Library (DLL)
Content Delivery Network (CDN)
Beratung & Support
Anfrage für Beratung/Consulting zu TAG HELPER
Gesamter Beratungsthemenkatalog
Technischer Support zum Thema TAG HELPER
Schulungen
ASP.NET Core 10.0/11.0: komplettes Wissen - mit MVC, Razor Pages, Blazor, WebAPIs und gRPC
ASP.NET Model View Controller (ASP.NET MVC) und ASP.NET WebAPI für ASP.NET MVC 5.x oder ASP.NET MVC Core 10.0/11.0
Umstieg auf ASP.NET Core 10.0/11.0-Webanwendungen in .NET 10.0/11.0 (Umstellung/Migration von klassischen ASP.NET-Webanwendungen auf ASP.NET Core)
Umstieg von .NET-Desktop-Entwicklung (WPF/Windows Forms) auf Webentwicklung (ASP.NET/ASP.NET Core + JavaScript/TypeScript mit Webframeworks wie Angular, Vue.js oder React)
Anfrage für eine individuelle Schulung zum Thema TAG HELPER
Gesamter Schulungsthemenkatalog
Fachbücher
Der Oracle DBA – Das Handbuch für Oracle On-Prem und Oracle Cloud
C# 15.0 Crashkurs
.NET 11.0 Update: Die Neuerungen in .NET 11.0 gegenüber .NET 10.0
Microsoft Copilot für Entscheider: Strategie, Governance und DSGVO-Compliance für CISOs, IT-Leiter und Datenschutzbeauftragte
SQL Server Performance & Troubleshooting: Reale Probleme, echte Lösungen — vom Hardware-Fundament bis zum Ausführungsplan
Blazor 10.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 10.0, C# 14.0 und Visual Studio 2026
C# 14.0 Crashkurs
Endlich barrierefrei
Moderne Datenzugriffslösungen mit Entity Framework Core 10.0
42 Wege, um liebevoll in der IT zu scheitern
PHP and MySQL: The Comprehensive Guide
.NET 10.0 Update: Die Neuerungen in .NET 10.0 gegenüber .NET 9.0
Excel: Zahlen rechnen Formeln: Formeln, Berechnungen und Verknüpfungen in Excel
Programmieren mit JavaScript
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
C# 13.0 Crashkurs
Cross-Plattform-Apps mit .NET MAUI entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
Product Ownership meistern
Digitale Barrierefreiheit für alle!
Gemeinsam für Inklusion: Kurzgeschichten über digitale Menschenrechtsverletzungen
Programmierung in Python
Data Modeling with Microsoft Power BI
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
C# und .NET 8 – Grundlagen, Profiwissen und Rezepte
PHP 8 und MySQL: Das umfassende Handbuch zu PHP 8 (Neuauflage zu PHP 8.3)
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Concurrency with Modern C++: What every professional C++ programmer should know about concurrency
C++20: Get the Details
Daten aufbereiten mit Power Query, Formeln und Assistenten in Excel
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
C# 12.0 Crashkurs
Self-Service AI mit Power BI
App-Entwicklung für Mobile und Desktop: Software Engineering mit .NET MAUI und Comet für iOS, Android, Windows und macOS
Aufzucht und Pflege kleiner Webseiten mit HTML
COBOL
COBOL
Reguläre Ausdrücke
Requirements Engineering für die agile Softwareentwicklung: Methoden, Techniken und Strategien
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
C# 11.0 Crashkurs
HTML5 und CSS3: Start ohne Vorwissen - mit umfangeichen Download Material (Sonderausgabe)
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
COBOL: Grundlagenkurs für Ein- und Umsteiger
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
ASP.NET Core Security
Digitale Barrierefreiheit für alle!
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr