Tag Helpers

Intermediate 20 min read Lesson 3 of 8

What are Tag Helpers?

Tag Helpers are server-side components that participate in HTML rendering. They provide a more HTML-friendly way to generate dynamic content.

Common Tag Helpers

Anchor Tag Helper

<a asp-page="/Products/Details" asp-route-id="5">
    View Product
</a>

// Outputs: <a href="/Products/Details/5">View Product</a>

Form Tag Helper

<form asp-page="/Products/Create" method="post">
    <!-- Form fields -->
</form>

// Outputs: <form action="/Products/Create" method="post">

Input Tag Helper

<input asp-for="Product.Name" />
<input asp-for="Product.Price" />
<textarea asp-for="Product.Description"></textarea>

// Generates appropriate input types with value binding

Label Tag Helper

<label asp-for="Product.Name"></label>
// Outputs: <label for="Product_Name">Name</label>

Select Tag Helper

<select asp-for="Product.CategoryId" asp-items="Model.Categories">
</select>

Validation Tag Helpers

<span asp-validation-for="Product.Name" class="text-danger"></span>
<div asp-validation-summary="ModelOnly" class="text-danger"></div>

Custom Tag Helpers

// TagHelpers/EmailTagHelper.cs
public class EmailTagHelper : TagHelper
{
    public string Address { get; set; }
    
    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        output.TagName = "a";
        output.Attributes.SetAttribute("href", $"mailto:{Address}");
        output.Content.SetContent(Address);
    }
}

// Usage
<email address="support@example.com"></email>
Key Takeaway

Tag Helpers provide a clean, HTML-friendly way to generate dynamic content in Razor Pages.

Test Your Knowledge - Take Quiz