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.
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 -->
| 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ě.
Tag Helpers se aktivují v souboru Pages/_ViewImports.cshtml:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
asp-* nedělají nic, jsou ignorovány