Guideline: HTML Helpers
HTML Helpery jsou metody sloužící k zjednodušení implementace pohledů. Pomocí C# kódu je při zobrazení stránky generován přímo kód HTML.
Relationships
Main Description

Ačkoli by se mohlo zdát, že je jejich použití zbytečné a výsledek je stejný, jako v případě psaní HTML elementů přímo do editoru, není tomu tak. Neslouží totiž pouze k vytvoření HTML značek, ale i k zachování konzistence v celé aplikaci. Pomáhají zajistit, aby jednotlivé URL v pohledech směřovaly na správné umístění, aby formulářové elementy odpovídaly správným názvům a hodnotám využitého modelu a aby byly zobrazeny odpovídající chyby v případě vyplnění špatné hodnoty.
Výhodou HTML Helperů je automatické kódování hodnot, které jsou výstupem nějakého modelu. Pokud by se tedy v hodnotě objevil například řetězec <br/>, ve výsledném HTML kódu bude kódován na <br />.
U všech HTML Helperů je mimo jejich specifické atributy možné zadat přímo HTML atributy jako je třída, id apod.

HTML Helpery jsou využívané především ve webových formulářích – jedná se o jeden z nejdůležitějších prvků webových stránek. Bez formulářů by byl web pouze statický, nebylo by možné vyhledávat či zadávat vstup jakoukoli formou. Mezi tyto HTML Helpery patří následující:

  • Html.BeginForm – definuje HTML formulář. Vstupními parametry je název Ovladače a Akce, která bude formulář zpracovávat a typ metody odeslání (POST/GET).
  • Html.ValidationSummary – Zobrazí validační chyby formuláře, které nejsou přiřazené ke konkrétní komponentě.
  • Html.TextBox a Html.TextArea – Vytvoří vstupní pole. V případě textové oblasti je možné do parametrů definovat i její velikost.
  • Html.Label – Vytvoří HTML značku label sloužící k asociaci popisku a vstupu.
  • Html.DropDownList a Html.ListBox – Vytvoří výběrový seznam pro vstupní hodnoty. DropDownList umožňuje výběr jedné hodnoty a ListBox jedné či více. Hodnoty zobrazené v tomto seznamu předává pohledu jeho ovladač pomocí vlastnosti ViewBag.
  • Html.ValidationMessage – Slouží k zobrazení chybové zprávy pro konkrétní pole. Jako parametr se uvádí název příslušného pole, přičemž samotná zpráva je opět zpracovávána v ovladači.
  • Dále Html.Password, Html.RadioButton, Html.CheckBox

Zmíněné HTML Helpery existují ještě ve variantě pro silně typová data pohledu. Ta jsou pohledu předávána jako model. Jednotlivé názvy metod pak sufix For (např. Html.LabelFor). V jejich případě není třeba do parametru zadávat text s názvem elementu, stačí přímo odkázat proměnnou modelu pomocí lambda výrazu. Využití silně typových dat přináší výhody ve formě automatického doplňování a oprav, či snadného refaktorování (Galloway et al., 2014).
Existují také jiné HTML Helpery, které neslouží pro formuláře, ale k vytvoření odkazů na zdroje v aplikaci. Jedná se např. o Html.ActionLink, který vytváří odkaz na konkrétní akci zadaného ovladače. Dané akci lze samozřejmě přidat i parametry, které pak budou v příslušné metodě ovladače k dispozici (např. ID uživatele). K vytvoření URL využívá speciální směrovací API, což je oproti ručnímu psaní odkazu nesrovnatelně rychlejší a umožní předejití chybám vzniklým z napevno definovaných odkazů.
Kromě předdefinovaných HTML Helperů v rámci frameworku existuje také možnost implementace vlastních. V rámci vlastních HTML Helperů je možné vytvářet v podstatě jakkoli složitý obsah od jednoduchých značek po navigační menu, či tabulky s databázovými daty.