ASP.NET Tag Helpers, formuláře, vstupní prvky, validace

Formát: 30 min praktická úloha, 15 min obhajoba + teorie. Teorie pokrývá Tag Helpers a formuláře, praktika je komplexnější s EF Core a 3 stránkami.

Pozn.: Tahle otázka má velký překryv s DAT 18 (Razor Pages), ale zaměřuje se specificky na Tag Helpers a formuláře. Stojí za to znát obě otázky.


Část 1: Teorie

Co jsou Tag Helpers

Tag Helpers jsou serverové komponenty v ASP.NET Core, které rozšiřují HTML elementy o atributy začínající asp-. Umožňují serverovému kódu účastnit se vykreslování HTML bez nutnosti opouštět HTML syntaxi.

<!-- Klasické HTML -->
<input type="email" name="Email" id="Email" value="" />
<label for="Email">Email</label>

<!-- S Tag Helperem -->
<input asp-for="Email" />          <!-- vygeneruje vše výše + validační atributy -->
<label asp-for="Email"></label>    <!-- vygeneruje for + text -->

Tag Helpers vs HTML Helpers (starší přístup)

HTML Helper (starší) Tag Helper (modernější)
@Html.TextBoxFor(m => m.Email) <input asp-for="Email" />
Smíchání C# a HTML Vypadá jako čisté HTML
Bez IntelliSense pro HTML Plná podpora IntelliSense
Slabá typovost při psaní Chyba při kompilaci, pokud vlastnost neexistuje

Tag Helpers jsou doporučovaný přístup od ASP.NET Core 1.0 (2016). HTML Helpers se v moderním kódu používají vzácně.


Aktivace Tag Helpers

Tag Helpers se aktivují v souboru Pages/_ViewImports.cshtml:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

Form Tag Helper