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.
|